Summary: | Clickpad never issues a ClickFinger3 event | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Michal Petrucha <michal.petrucha> | ||||||||
Component: | Input/synaptics | Assignee: | Peter Hutterer <peter.hutterer> | ||||||||
Status: | RESOLVED FIXED | QA Contact: | |||||||||
Severity: | normal | ||||||||||
Priority: | medium | CC: | peter.hutterer | ||||||||
Version: | unspecified | ||||||||||
Hardware: | x86-64 (AMD64) | ||||||||||
OS: | Linux (All) | ||||||||||
Whiteboard: | |||||||||||
i915 platform: | i915 features: | ||||||||||
Attachments: |
|
Created attachment 67745 [details]
xorg conf
Created attachment 67746 [details]
Xorg.0.log
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 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. 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 |
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.
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.