path: root/doc
diff options
authorPeter Hutterer <>2015-06-16 17:02:02 +1000
committerPeter Hutterer <>2015-06-23 14:24:29 +1000
commit75581d58297dfd022dcdf8be2daf8b6306cc0b8c (patch)
treeca193230009fe71dc8b72ddc72d3dc2dce33a858 /doc
parent3fcdba6ca60bdcba4d79746f5c06415ca2f1e8a7 (diff)
Add configuration interface for tap drag-lock
In some applications, notably Inkscape, where it is common to frequently drag objects a short distance the default to drag-lock always-on is frustrating for users. Make it configurable, with the current default to "on". New API: libinput_device_config_tap_set_drag_lock_enabled libinput_device_config_tap_get_drag_lock_enabled libinput_device_config_tap_get_default_drag_lock_enabled Any device capable of tapping is capable of drag lock, there is no explicit availability check for drag lock. Configuration is independent, drag lock may be enabled when tapping is disabled. In the tests, enable/disable drag-lock explicitly where the tests depend on it. Signed-off-by: Peter Hutterer <> Reviewed-by: Hans de Goede <>
Diffstat (limited to 'doc')
1 files changed, 13 insertions, 6 deletions
diff --git a/doc/tapping.dox b/doc/tapping.dox
index 1337fc53..483219ad 100644
--- a/doc/tapping.dox
+++ b/doc/tapping.dox
@@ -29,17 +29,24 @@ libinput also supports "tap-and-drag" where a tap immediately followed by a
finger down and that finger being held down emulates a button press. Moving
the finger around can thus drag the selected item on the screen.
+Optional is a feature called "drag lock". With drag lock disabled, lifting
+the finger will stop any drag process. When enabled, libinput will ignore a
+finger up event during a drag process, provided the finger is set down again
+within a implementation-specific timeout. Drag lock can be enabled and
+disabled with libinput_device_config_tap_set_drag_lock_enabled().
@image html tap-n-drag.svg "Tap-and-drag process"
The above diagram explains the process, a tap (a) followed by a finger held
down (b) starts the drag process and logically holds the left mouse button
down. A movement of the finger (c) will drag the selected item until the
-finger is relased (e). If needed, the finger's position can be reset by
-lifting and quickly setting it down again on the touchpad (d). This will be
-interpreted as continuing move and is especially useful on small touchpads
-or with slow pointer acceleration.
-The release of the mouse buttons after the finger release (e) is triggered
-by a timeout. To release the button immediately, simply tap again (f).
+finger is relased (e). If needed and drag lock is enabled, the finger's
+position can be reset by lifting and quickly setting it down again on the
+touchpad (d). This will be interpreted as continuing move and is especially
+useful on small touchpads or with slow pointer acceleration.
+If drag lock is enabled, the release of the mouse buttons after the finger
+release (e) is triggered by a timeout. To release the button immediately,
+simply tap again (f).
If two fingers are supported by the hardware, a second finger can be used to
drag while the first is held in-place.