[Wayland-bugs] [Bug 86807] Continue moving the pointer when 2fg scrolling ends

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Dec 1 01:29:45 PST 2014


https://bugs.freedesktop.org/show_bug.cgi?id=86807

--- Comment #1 from Hans de Goede <jwrdegoede at fedoraproject.org> ---
Created attachment 110289
  --> https://bugs.freedesktop.org/attachment.cgi?id=110289&action=edit
[PATCH] touchpad: Allow the center of pinned fingers to drift over time

Hi,

It seems that what you're describing here are 2 distinct issues:

(In reply to Peter Hutterer from comment #0)
> Once two-finger scrolling is triggered, pointer movement stops until all
> fingers are lifted off the touchpad. This is problematic during
> drag-and-drop, if the finger holding the button down moves enough to trigger
> a single scroll event libinput switches to scroll and you can't get out of
> that mode without lifting the finger (and ending the drag).

The problem here is not 2fg scrolling triggering, the problem is the finger
getting unpinned, once unpinned it counts for 2fg scrolling, and as such as
long as 2 fg are down you will be in a 2fg scrolling situation. Note that this
is only a problem when doing click + drag outside the button areas.

We could potentially fix this by doing something like the attached patch, can
you give this a try ?

> another way to directly reproduce this as well:
> 
> 10:45 < Jasper> whot, what I do: press down index on clickpad, move index 
>                 around a bit
> 10:46 < Jasper> Realize I need more drag range, press middle down and move 
>                 middle
> 
> What libinput should do is recognise that there's only one finger left and
> go back to normal pointer motion.

This is a different problem, here the clicking finger is also the one doing the
dragging, so here the unpin is deliberate. 2fg scrolling may or may not trigger
here, the problem is that when the 2nd finger comes down the 1st one is the
pointer, and we do not look for a new pointer candidate when the 1st finger
lifts. AFAIK this is deliberate, we don't want which finger is the pointer to
be jumping between fingers when there is an (accidental) lift.

What we could do here is set a timer of 300 ms when the finger which is the
pointer lifts, and if no new pointer is assigned when that timer expires,
search for the first active finger (so not pinned and not in a soft button
area) and make that the pointer.

I think that that is a good solution, if you agree I can implement this.

Regards,

Hans

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-bugs/attachments/20141201/bb7e606e/attachment-0001.html>


More information about the wayland-bugs mailing list