Bugzilla – Bug 55365
Clickpad never issues a ClickFinger3 event
Last modified: 2014-02-19 22:51:46 UTC
Created attachment 67744 [details]
When clicking with three fingers on the touchpad, either a
button 1 or a ClickFinger2 event is issued seemingly randomly.
Also, from time to time, a two-finger click issues a button 1
Using git bisect I was able to reconstruct the following
the last commit where everything works
disables ClickFingers altogether and a button 1 event is
brings back ClickFingers but for each logical button
other than 1 an additional button 1 event is fired
breaks ClickFinger3 as described above, i.e. sometimes
it acts as a button 1, other times as a two-finger
click; the additional button 1 event is still there
removes the additional button 1 event and thus brings
the exact behavior described above
Each build was done in a clean working tree, in each tested
revision synclient -m 50 reported the correct number of fingers
touching the touchpad for up to three fingers.
The attached X.org config file was used, I'll also attach the
dmesg output and Xorg.0.log. The laptop is Ideapad Y580,
Created attachment 67745 [details]
Created attachment 67746 [details]
does your touchpad actually support three touchpoints? I have a clickpad here that pretends to do so, except that it doesn't.
Grab https://github.com/whot/mtview and run it against the device to check if you can really see three touch points. You'll need the following snippet for mtview to see events
$> cat /etc/X11/xorg.conf.d/99-synaptics-disable-grab.conf
Identifier "Don't grab synaptics"
Option "GrabEventDevice" "off"
Okay, it took me a really long time to test this. It appears you're right, when I put a third finger on the touchpad, the second circle in mtview doesn't get updated anymore.
However, the point about synclient should still be valid. The last time I tried, synclient -m 50 showed the correct number of fingers touching the clickpad when up to three fingers were touching it.
(For some reason I can't verify this right now, because synclient -m 50 always exits with "Can't access shared memory area. SHMConfig disabled?" even though the option is enabled in the X.org config and shown in its log.)
Isn't the information about the number of fingers sufficient to decide which button is emulated?
it is, but the data synclient -m showed isn't the same that's available in the driver for all models.
e.g. BTN_TOOL_TRIPLETAP signals three fingers, but if this is a MT-capable touchpad we just use the touchpoints that we actually get the data for.
as for the shm issue - you didn't update the driver? it's been removed since.
The guessing introduced in 420e0abef663729b3ce6e9d26360e616b7270ba6 causes this problem for me too on a Thinkpad Helix. I simply commented out this
// if (para->clickpad)
// nfingers = clickpad_guess_clickfingers(priv, hw);
and now 3-finger clicking is working fine again.
Author: Peter Hutterer <email@example.com>
Date: Mon Dec 16 09:43:40 2013 +1000
On clickpads with two touchpoints, try to detect clickfinger 3 actions