Bug 55365 - Clickpad never issues a ClickFinger3 event
Clickpad never issues a ClickFinger3 event
Status: RESOLVED FIXED
Product: xorg
Classification: Unclassified
Component: Input/synaptics
unspecified
x86-64 (AMD64) Linux (All)
: medium normal
Assigned To: Peter Hutterer
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-09-26 19:56 UTC by Michal Petrucha
Modified: 2014-02-19 22:51 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg (201.40 KB, text/plain)
2012-09-26 19:56 UTC, Michal Petrucha
no flags Details
xorg conf (1.69 KB, text/plain)
2012-09-26 19:57 UTC, Michal Petrucha
no flags Details
Xorg.0.log (185.24 KB, text/plain)
2012-09-26 20:08 UTC, Michal Petrucha
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michal Petrucha 2012-09-26 19:56:15 UTC
Created attachment 67744 [details]
dmesg

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
event.



Using git bisect I was able to reconstruct the following
history:

f6c1efbc6d22f41fb8a4abd2f57db173a2ac3171
        the last commit where everything works

70b4e983c6626b9b20bdf59324f64b3fd99c5202
        disables ClickFingers altogether and a button 1 event is
        always fired

739cf056685772e69744f009f567e54324bc9dd0
        brings back ClickFingers but for each logical button
        other than 1 an additional button 1 event is fired

420e0abef663729b3ce6e9d26360e616b7270ba6
        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

b3348eb7e4e2187e11aa3c1cec2a58512759e6aa
        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,
distribution Gentoo.
Comment 1 Michal Petrucha 2012-09-26 19:57:50 UTC
Created attachment 67745 [details]
xorg conf
Comment 2 Michal Petrucha 2012-09-26 20:08:27 UTC
Created attachment 67746 [details]
Xorg.0.log
Comment 3 Peter Hutterer 2012-10-19 00:47:58 UTC
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
Section "InputClass"
	Identifier "Don't grab synaptics"
	MatchDriver "synaptics"
	Option "GrabEventDevice" "off"
EndSection
Comment 4 Michal Petrucha 2013-05-11 10:45:04 UTC
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?
Comment 5 Peter Hutterer 2013-05-12 23:20:36 UTC
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.
Comment 6 Shawn Rutledge 2013-12-15 07:13:28 UTC
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.
Comment 7 Peter Hutterer 2013-12-15 23:47:10 UTC
http://patchwork.freedesktop.org/patch/16754/
Comment 8 Peter Hutterer 2014-02-19 22:51:46 UTC
commit 51b6bf3c1083638527b18696c2b682fd78c97070
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Dec 16 09:43:40 2013 +1000

    On clickpads with two touchpoints, try to detect clickfinger 3 actions