Bug 70819

Summary: Multi-finger clicks not properly handled on Dell XPS 13 trackpad
Product: xorg Reporter: Adam Williamson <adamw>
Component: Input/synapticsAssignee: Peter Hutterer <peter.hutterer>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer, samuel
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
two finger tap recording
none
three finger tap recording
none
two finger click recording
none
three finger click recording none

Description Adam Williamson 2013-10-24 01:34:50 UTC
I have a Dell XPS 13 developer edition laptop (which should be a _fairly_ popular system for Linux use, as it's a pretty well-specced 13" ultrabook which comes pre-loaded with Ubuntu - I'm running Fedora, of course). It has a Macbook-style trackpad - no physical buttons, the whole thing clicks. I was trying to figure out how to do a middle click, and having trouble. After some debugging with whot, it turns out part of the problem is that it interprets multi-finger *taps* correctly, but not multi-finger *clicks*. Neither a two-finger nor a three-finger click actually does what the ClickFinger options I have set say they should do (tried with multiple mappings, it never works). Two finger and three finger taps are picked up quite well (personally I hate tapping, so this isn't much of a solution for me, but meh).

Snippets from IRC discussion:

<whot> adamw: well, that explains a bit. your touchpad only tracks two fingers
<adamw> well...still doesn't explain why three finger tap works fine, and two finger click doesn't...
<whot> if you look at the header of the recording, you see that DOUBLETAP, TRIPLETAP and QUADTAP is set. so the device claims it knows when 3 and 4 fingers are down
 but ABS_MT_SLOT only has a range of 2, so it can only track 2 touchpoints at a time
<whot> for tapping, we use the doubletap flags, for clickfingers (on a clickpad anyway) we only use the actually tracked touchpoints

I'm not sure if that explains why a two-finger click doesn't seem to work, but hey. I'll attach the evemu recordings whot asked me to take, of two- and three-finger taps and clicks.
Comment 1 Adam Williamson 2013-10-24 01:37:15 UTC
Created attachment 88060 [details]
two finger tap recording
Comment 2 Adam Williamson 2013-10-24 01:37:29 UTC
Created attachment 88061 [details]
three finger tap recording
Comment 3 Adam Williamson 2013-10-24 01:37:41 UTC
Created attachment 88062 [details]
two finger click recording
Comment 4 Adam Williamson 2013-10-24 01:37:54 UTC
Created attachment 88063 [details]
three finger click recording
Comment 5 Peter Hutterer 2013-11-01 02:19:45 UTC
can you please attach a recording of a normal click as well? What I see in both the two- and three- finger click recording is that the touchpad actually sets BTN_RIGHT, not BTN_LEFT like other clickpads and I want to know if that's some weird touchpad issue or a driver bug.
Comment 6 Adam Williamson 2014-03-20 21:44:41 UTC
So I think the stuff we figured out in https://bugs.freedesktop.org/show_bug.cgi?id=76341 explains why I can't configure two-finger clicks on this device: it's because of the firmware.

If I disable clickpad-iness on the device entirely - by setting the "Synaptics ClickPad" property to 0 - several things still work, indicating they're implemented in the pad's firmware. The pad's firmware implements soft left and right button areas at the bottom of the pad. The firmware implements two-finger scrolling. And the firmware also implements two-finger *clicking*: even with the synaptics driver not treating it as a clickpad, a two-finger click generates a right click, so clearly the firmware is doing that.

So I think the reason I couldn't make two-finger clicks do what I wanted by configuring the driver is that the firmware is already handling them.

With that, we have an explanation for everything, right?
Comment 7 Peter Hutterer 2014-03-21 01:02:26 UTC
Yes, that's the explanation. We don't get the right data from the touchpad so I'll have to close this as WONTFIX, there isn't much we can do in the driver (or rather it would be rather horrible to hack up).

As for this particular bug: disabling ClickPad won't have much effect on the clickfinger-style interactions, it merely handles the software-emulated buttons.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.