https://bugs.freedesktop.org/show_bug.cgi?id=86807
--- Comment #1 from Hans de Goede <[email protected]> --- 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.
_______________________________________________ wayland-bugs mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-bugs
