Bug 89949 - Fake finger switching bug in edge scrolling and tapping code
Summary: Fake finger switching bug in edge scrolling and tapping code
Status: RESOLVED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-08 05:19 UTC by Peter Hutterer
Modified: 2015-04-08 22:58 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
evemu recording (3.31 KB, text/plain)
2015-04-08 05:19 UTC, Peter Hutterer
Details
0001-touchpad-delay-fake-finger-processing-until-the-EV_S.patch (2.10 KB, patch)
2015-04-08 07:05 UTC, Peter Hutterer
Details | Splinter Review

Description Peter Hutterer 2015-04-08 05:19:03 UTC
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
Comment 1 Peter Hutterer 2015-04-08 07:05:53 UTC
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 2 Hans de Goede 2015-04-08 08:30:10 UTC
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>
Comment 3 Peter Hutterer 2015-04-08 22:58:32 UTC
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.