Bug 98800

Summary: Allow resting the thumb on the touchpad while performing multi-finger gestures
Product: Wayland Reporter: Nate Graham <nate>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: medium CC: nate, peter.hutterer
Version: 1.5.0   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Trying to two-finger scroll with the thumb resting on the bottom of the pad using Areas behavior
Trying to two-finger scroll with the thumb resting on the bottom of the pad using Clickfinger behavior
Tapping three fingers on the pad with Areas behavior to try to determine how many touches my touchpad supports
Tapping three fingers on the pad with Clickfinger behavior to try to determine how many touches my touchpad supports

Description Nate Graham 2016-11-21 05:08:01 UTC
I have an HP Spectre x360 (Kaby Lake) with a touchpad, running Fedora 25, GNOME 3.22, Wayland, and libinput 1.5.1 (release 1.fc25).

This bug is similar to https://bugs.freedesktop.org/show_bug.cgi?id=90527

I am requesting that a thumb resting on the bottom of the pad additionally be ignored when performing multi-finger gestures--in particular two-finger scrolling and two and three-finger clicking (Clickfinger behavior). This is how Mac trackpads work and it is very, very nice.
Comment 1 Peter Hutterer 2016-11-22 04:04:39 UTC
I'm wondering: does your touchpad even support more than 2 fingers? Can you attach an evemu-record of a two-finger scrolling with the thumb resting somewhere please?
Comment 2 Nate Graham 2016-11-22 07:04:33 UTC
Created attachment 128135 [details]
Trying to two-finger scroll with the thumb resting on the bottom of the pad using Areas behavior
Comment 3 Nate Graham 2016-11-22 07:05:28 UTC
Created attachment 128136 [details]
Trying to two-finger scroll with the thumb resting on the bottom of the pad using Clickfinger behavior
Comment 4 Nate Graham 2016-11-22 07:06:07 UTC
Created attachment 128137 [details]
Tapping three fingers on the pad with Areas behavior to try to determine how many touches my touchpad supports
Comment 5 Nate Graham 2016-11-22 07:06:30 UTC
Created attachment 128138 [details]
Tapping three fingers on the pad with Clickfinger behavior to try to determine how many touches my touchpad supports
Comment 6 Peter Hutterer 2016-11-23 05:02:46 UTC
ok, basic problem here: your touchpad only supports 2 finger tracking. That's common for all PS/2 touchpads, until we get the RMI4 patches into the kernel this simply cannot work. The main problem is that we only get a bitflag to tell us that 2, 3, 4 or even 5 fingers are down (the various BTN_TOOL_*TAP). The actual position is only provided for the first two fingers down, so depending on the situation this may be thumb+finger or just two fingers. We can't even do thumb detection for 2+ fingers for that reason.

For the gestures that also means we have no idea if all fingers need to be counted or not because we just don't know where some of them are (and thus whether one of them could be a thumb or not).

As I said above, the RMI4 code hopefully in kernel 4.10 should fix that by giving us full 5 finger tracking, but until then we can't do anything with your touchpad.

But anyway, it brings us to the next issue: it's semantically quite ambiguous to figure out when a thumb counts and when it doesn't. Thumb down + two-finger scroll - is it a 2fg scroll or a three-finger pinch? Especially given the small movements a thumb does while moving the other fingers, it's hard to determine what should happen. With buttonareas we have the advantage of just ignoring a part of the touchpad, but with clickfinger this doesn't work.

There are cases where it's reasonably clear (e.g. a thumb resting for ages on some area) but we need to solve these ambiguities for all use-cases. And at that point I rather not have the ability to do thumb + gestures, if for no other reason than that it trains users not to try it in the first place. Sorry
Comment 7 Nate Graham 2016-11-23 06:07:27 UTC
OK, fair enough. I can see how even with RMI4 support, this could get really confusing with like three and four finger gestures. But how about just two-finger scrolling? That should be a really easy use case to detect:
- Two fingers roughly next to each other are both going in the same direction which is only a maximum of a few degrees off from up-and-down or left-or-right
- A third usually larger finger is more or less staying in one place, especially if that place is either on the bottom of the trackpad or any other location below and to the left or below and to the right of the moving fingers

Could we re-purpose this bug to be about ignoring the thumb just for two-finger scrolling? That's the use case that makes sense, and I agree with you about the other gestures.

Also, about Bugzilla etiquette: if someone else (e.g. you) moves a bug to a RESOLVED state and I think it deserves more attention or should be re-purposed, is it appropriate for me to move a bug back to UNRESOLVED, or would that be considered rude and instead I should try to convince the person who originally moved it to move it back?
Comment 8 Peter Hutterer 2016-11-25 02:44:42 UTC
(In reply to Nate Graham from comment #7)
> Also, about Bugzilla etiquette: if someone else (e.g. you) moves a bug to a
> RESOLVED state and I think it deserves more attention or should be
> re-purposed, is it appropriate for me to move a bug back to UNRESOLVED, or
> would that be considered rude and instead I should try to convince the
> person who originally moved it to move it back?

it's fluid. if it's closed as fixed and still a bug, then reopening directly is fine. for things like WONTFIX you kinda want discussion and agreement because having open bugs that never get addressed doesn't help anyone either. 

Specifically: for this bug on your hardwware we cannot do anything, but once we're on RMI4 I'm happy to reconsider. Feel free to re-open the bug then (or better yet, file a new one and link to this one so we have some trail).
Comment 9 Nate Graham 2016-11-25 02:53:12 UTC
Gotcha. I will close this and open a new one once RMI4 support is in.

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.