Bug 104734 - Speed-based thumb detection causes unreliable scrolling
Summary: Speed-based thumb detection causes unreliable scrolling
Status: RESOLVED MOVED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: All All
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 99703
Blocks:
  Show dependency treegraph
 
Reported: 2018-01-22 18:22 UTC by Sebastian Krzyszkowiak
Modified: 2018-06-05 09:59 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
evemu info (4.22 KB, text/plain)
2018-01-22 18:22 UTC, Sebastian Krzyszkowiak
Details
udev info (792 bytes, text/plain)
2018-01-22 18:23 UTC, Sebastian Krzyszkowiak
Details
evemu recording (253.74 KB, text/plain)
2018-01-22 18:24 UTC, Sebastian Krzyszkowiak
Details
libinput debug-events output, live, misinterpreted (19.90 KB, text/plain)
2018-01-22 18:24 UTC, Sebastian Krzyszkowiak
Details
libinput debug-events output, replayed, correct (25.52 KB, text/plain)
2018-01-22 18:25 UTC, Sebastian Krzyszkowiak
Details

Description Sebastian Krzyszkowiak 2018-01-22 18:22:11 UTC
One of the main issues that drive me away from any libinput-based session towards xf86-driver-synaptics is the way two-finger scrolling is triggered - or, actually, sometimes not triggered - with libinput (with either xf86-driver-libinput, libinput debug tools or various Wayland compositors).

The situation: The pointer is already moving with one finger and the second finger is placed on the touchpad.
Expected result: pointer stops to move and content starts to scroll.
Result got: pointer continues to move, no scrolling happens.

xf86-driver-synaptics detects all the two-finger scrolls reliably and works as expected. With libinput, I always need to stop moving and only then can start scrolling, which is extremely annoying.

dos@yoga:~$ pacman -Ss libinput
extra/libinput 1.9.4-1 [installed]

Laptop: Lenovo Yoga 900-13ISK

# DMI: dmi:bvnLENOVO:bvrC6CN39WW:bd10/11/2016:svnLENOVO:pn80MK:pvrLenovoYOGA900-13ISK:rvnLENOVO:rnVIUU4:rvrSDK0J40709WIN:cvnLENOVO:ct10:cvrLenovoYOGA900-13ISK:

# Input device name: "Synaptics TM3066-002"
# Input device ID: bus 0x18 vendor 0x6cb product 0x77c6 version 0x100
# Size in mm: 87x57

The attached recording shows the example misinterpreted touchpad action. libinput-debug-events.txt shows the libinput's misinterpretation. However, when the recording is replayed with evemu-play, it's actually interpreted correctly (as seen in libinput-debug-events-replayed.txt).
Comment 1 Sebastian Krzyszkowiak 2018-01-22 18:22:38 UTC
Created attachment 136899 [details]
evemu info
Comment 2 Sebastian Krzyszkowiak 2018-01-22 18:23:01 UTC
Created attachment 136900 [details]
udev info
Comment 3 Sebastian Krzyszkowiak 2018-01-22 18:24:11 UTC
Created attachment 136901 [details]
evemu recording

Recording content: one finger placed on touchpad, moved to move the cursor, then second one placed and both moved together for a while in order to scroll.
Comment 4 Sebastian Krzyszkowiak 2018-01-22 18:24:42 UTC
Created attachment 136902 [details]
libinput debug-events output, live, misinterpreted
Comment 5 Sebastian Krzyszkowiak 2018-01-22 18:25:01 UTC
Created attachment 136903 [details]
libinput debug-events output, replayed, correct
Comment 6 Peter Hutterer 2018-01-23 23:34:31 UTC
Most likely a side-effect of bug 99703, this behaviour is intentional but should only be triggered above a certain movement speed. And it's the classic case of we have to pick a behaviour and thus get to choose which set of people to upset, sorry.
Comment 7 Sebastian Krzyszkowiak 2018-01-24 01:02:12 UTC
I understand that sometimes it's good to ignore such gesture due to it likely being a mistake, however, libinput is really, really stubborn with ignoring it even after I keep firmly moving two fingers together through the whole touchpad, which is hard to do by accident - I need to release the finger and touch again for it to start scrolling. I believe there should be some room to make this heuristic better without giving up on detecting accidents from bug 99703 :)
Comment 8 Peter Hutterer 2018-02-01 04:55:15 UTC
Yeah, I agree, we can be a bit more detailed here and check for motion distance/motion speed/something? Not sure what exactly though and I'm bottlenecking everywhere already, so I'll definitely will need help with that, sorry.
Comment 9 gbenhaim 2018-04-05 11:22:05 UTC
I find this two fingers scroll behavior annoying and unusable compare to the synaptics driver. I recently switched to Fedora 27 and reverted to Xorg/synaptics because of this..
Comment 10 Peter Hutterer 2018-04-06 02:01:30 UTC
not sure what your comment is supposed to achieve. it's not like bugs magically fix themselves if you switch to another driver.
Comment 11 GitLab Migration User 2018-06-05 09:59:43 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/libinput/libinput/issues/13.


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.