Created attachment 114942 [details] evemu recording To switch from one to two fingers on a touchpad without slots, the event sequence is: BTN_TOOL_FINGER 0 BTN_TOOL_DOUBLETAP 1 SYN_REPORT On those touchpads, all touches are fake touches (sort-of). The above sequence will end the currently active touch and then re-start two new touches when the DOUBLETAP is seen. This triggers a bug message in the edge scrolling code - since there is no SYN_REPORT between the BTN_TOOL the touch is still in AREA state when it is re-triggered as a TOUCH_BEGIN. This also affects the tapping code. The sequence attached is enough to trigger it, full sequence in the bug here: https://bugzilla.redhat.com/show_bug.cgi?id=1209151
Created attachment 114948 [details] [review] 0001-touchpad-delay-fake-finger-processing-until-the-EV_S.patch actually, this looked easier than I thought at first. All we need to do is delay the fake touch start/end until SYN_REPORT time and that's only a few lines of shuffling around.
Comment on attachment 114948 [details] [review] 0001-touchpad-delay-fake-finger-processing-until-the-EV_S.patch Patch looks good and is: Reviewed-by: Hans de Goede <hdegoede@redhat.com>
commit ac0f5e799aec72ab392f6d79bbd97662000335e7 Author: Peter Hutterer <peter.hutterer@who-t.net> Date: Wed Apr 8 17:00:50 2015 +1000 touchpad: delay fake finger processing until the EV_SYN
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.