Bug 90928

Summary: Allow tap-to-drag drag lock to be disabled
Product: Wayland Reporter: liam
Component: libinputAssignee: Peter Hutterer <peter.hutterer>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: medium CC: emily, nacho.resa, peter.hutterer, yaroslav.sapozhnik
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description liam 2015-06-10 23:45:24 UTC
Tap to drag is helpful for small trackpads and/or people with slow mouse speeds. When those things don't hold it can be difficult to work with. This ranges from inconvenient (highlighting text and then right clicking only to find that subsequent mouse movement has changed what was highlighted) to nearly impossible to use (in mouse-heavy apps like Inkscape).

To illustrate, a common use case in Inkscape is to draw bezier curves. The workflow for drawing a curve is to click to set a control point, and drag to set the handles for the curve. This workflow has to be repeated for each control point in the curveā€”not even considering having to go back and edit the control points which requires more clicking and dragging. Even a relatively simple curve could have 10+ points. With a mouse, this is two motions per control point, but on a touchpad with tap-to-drag enabled, this doubles to 4 motions per control point, assuming you don't want to wait for each one to time out which is a fairly safe assumption. These extra motions add up to make an otherwise simple workflow awkward and frustrating.
Comment 1 liam 2015-06-11 22:42:52 UTC
Hi Peter,

I just wanted to mention something Michael Murphy (https://plus.google.com/101372586948497437343/posts/BtR8SCCfFaq) did to fix his issues with tap-to-drag. He recompiled libinput and lowered the timeout to 30msec. Would it be possible to make the timeout configurable?
Again, I'd like to mention that even Apple allows this particular option to be configurable. Considering the scant configurations they allow for the touchpad (scrolling speed, inertial scrolling and tap-to-drag...note it seems as though they don't allow the user to even disable tapping) I think it's worth considering why they chose tap-to-drag to be exposed.

https://support.apple.com/kb/PH18396?locale=en_US

Best/Liam
Comment 2 liam 2015-06-16 05:08:02 UTC
Wow, thanks so very much for putting this on your enhancement radar!

Best/Liam
Comment 3 Peter Hutterer 2015-06-16 05:11:55 UTC
(In reply to liam from comment #1)
> I just wanted to mention something Michael Murphy
> (https://plus.google.com/101372586948497437343/posts/BtR8SCCfFaq) did to fix
> his issues with tap-to-drag. He recompiled libinput and lowered the timeout
> to 30msec. Would it be possible to make the timeout configurable?

honestly not a big fan of exposing the timeout, it's IMO the wrong toggle. I don't want to expose configuration options that do one thing just so users can disable the other thing (xkcd workflow :). if we want this exposed, we should expose it as we want it to be used.

> Again, I'd like to mention that even Apple allows this particular option to
> be configurable. Considering the scant configurations they allow for the
> touchpad (scrolling speed, inertial scrolling and tap-to-drag...note it
> seems as though they don't allow the user to even disable tapping) I think
> it's worth considering why they chose tap-to-drag to be exposed.
> 
> https://support.apple.com/kb/PH18396?locale=en_US

hmm, interesting. and it's hidden away in Accessibilty, which explains why I never noticed it myself.

So the question is, what toggle do we want here? Just enabling/disabling the drag lock behaviour?
Comment 4 Emily Dirsh 2015-06-16 06:23:40 UTC
(In reply to Peter Hutterer from comment #3)
> (In reply to liam from comment #1)
> > I just wanted to mention something Michael Murphy
> > (https://plus.google.com/101372586948497437343/posts/BtR8SCCfFaq) did to fix
> > his issues with tap-to-drag. He recompiled libinput and lowered the timeout
> > to 30msec. Would it be possible to make the timeout configurable?
> 
> honestly not a big fan of exposing the timeout, it's IMO the wrong toggle. I
> don't want to expose configuration options that do one thing just so users
> can disable the other thing (xkcd workflow :). if we want this exposed, we
> should expose it as we want it to be used.

I agree that exposing the timeout is not an ideal user experience - it's fiddly and requires trial and error on the part of the user. 

> 
> > Again, I'd like to mention that even Apple allows this particular option to
> > be configurable. Considering the scant configurations they allow for the
> > touchpad (scrolling speed, inertial scrolling and tap-to-drag...note it
> > seems as though they don't allow the user to even disable tapping) I think
> > it's worth considering why they chose tap-to-drag to be exposed.
> > 
> > https://support.apple.com/kb/PH18396?locale=en_US
> 
> hmm, interesting. and it's hidden away in Accessibilty, which explains why I
> never noticed it myself.
> 
> So the question is, what toggle do we want here? Just enabling/disabling the
> drag lock behaviour?

IMO a simple toggle to turn it on or off is adequate.
Comment 5 liam 2015-06-17 05:45:05 UTC
(In reply to Peter Hutterer from comment #3)
> (In reply to liam from comment #1)
> > I just wanted to mention something Michael Murphy
> > (https://plus.google.com/101372586948497437343/posts/BtR8SCCfFaq) did to fix
> > his issues with tap-to-drag. He recompiled libinput and lowered the timeout
> > to 30msec. Would it be possible to make the timeout configurable?
> 
> honestly not a big fan of exposing the timeout, it's IMO the wrong toggle. I
> don't want to expose configuration options that do one thing just so users
> can disable the other thing (xkcd workflow :). if we want this exposed, we
> should expose it as we want it to be used.
> 
I can understand that. I only mentioned b/c you've already had to change the timeout once, so it's not impossible that it'll need to change again. The other reason was purely about ease of implementation.

> > Again, I'd like to mention that even Apple allows this particular option to
> > be configurable. Considering the scant configurations they allow for the
> > touchpad (scrolling speed, inertial scrolling and tap-to-drag...note it
> > seems as though they don't allow the user to even disable tapping) I think
> > it's worth considering why they chose tap-to-drag to be exposed.
> > 
> > https://support.apple.com/kb/PH18396?locale=en_US
> 
> hmm, interesting. and it's hidden away in Accessibilty, which explains why I
> never noticed it myself.
> 
> So the question is, what toggle do we want here? Just enabling/disabling the
> drag lock behaviour?

Yes, that's what Apple seems to have done. 

Thanks again

Best/Liam
Comment 6 Peter Hutterer 2015-06-18 00:37:18 UTC
changing title to be more precise, we're only talking about drag lock, not tap-to-drag.
Comment 7 Peter Hutterer 2015-06-22 05:03:25 UTC
patchset here:
http://lists.freedesktop.org/archives/wayland-devel/2015-June/022800.html
Comment 8 Peter Hutterer 2015-06-23 06:08:41 UTC
commit 75581d58297dfd022dcdf8be2daf8b6306cc0b8c
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 16 17:02:02 2015 +1000

    Add configuration interface for tap drag-lock
Comment 9 Peter Hutterer 2015-06-23 22:19:43 UTC
*** Bug 91067 has been marked as a duplicate of this bug. ***

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.