libinput/test
Peter Hutterer fe1d44637f touchpad: add support for fast swipe when 3fg drag is enabled
This adds a movement threshold (5mm) and a timeout (80ms) to the 3fg
drag gesture. On 3fg down with 3fg drag enabled we immediately send a
GESTURE_SWIPE event. After the timeout expires we check the movement of
the fingers - if it is below the threshold cancel the swipe and hold a
button down (i.e. a 3fg drag). Otherwise, continue with this being a
swipe.

This allows for swipe gestures to be used while 3fg drag is enabled.

Above applies the same way for 4fg with 4fg drag enabled.
Thresholds selected using the "yeah, that seems about alright" method,
intentionally quite low because we assume that users that enable 3fg
drag prefer 3fg dragging over swipe.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1410>
2026-02-02 06:44:48 +00:00
..
.clang-tidy Add a clang-tidy file 2025-04-07 08:43:36 +00:00
50-litest.conf test: rename the identifier in the 50-litest.conf 2020-07-15 09:36:48 +10:00
build-cxx.cc meson.build: drop the separate cpp flags 2020-09-09 13:57:39 +10:00
build-pedantic.c Fix a couple of coding style issues 2015-05-01 12:09:57 +10:00
check-leftover-udev-rules.sh test: add a script to check for leftover litest rules 2018-03-23 12:41:23 +10:00
generate-gcov-report.sh Hook up gcov for coverage reports 2017-01-20 10:35:37 +10:00
helper-copy-and-exec-from-tmp.sh tools: move the builddir lookup function out to a separate file 2019-03-14 11:28:05 +10:00
libinput-test-suite.man test: rename the identifier in the 50-litest.conf 2020-07-15 09:36:48 +10:00
litest-device-absinfo-override.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-acer-hawaii-keyboard.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-acer-hawaii-touchpad.c test: add missing BTN_TOOL_QUINTTAP to the acer hawaii test device 2026-01-20 11:49:58 +10:00
litest-device-aiptek-tablet.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-alps-3fg.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-alps-dualpoint.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-alps-semi-mt.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-anker-mouse-kbd.c test: update a test for current kernels 2025-07-01 09:20:57 +00:00
litest-device-apple-appletouch.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-apple-internal-keyboard.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-apple-magicmouse.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-asus-rog-gladius.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-atmel-hover.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-bcm5974.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-calibrated-touchscreen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-cyborg-rat-5.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-dell-canvas-totem-touch.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-dell-canvas-totem.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-elan-tablet.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-elantech-touchpad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-format-string.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-generic-pressurepad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-generic-singletouch.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-gpio-keys.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-hp-wmi-hotkeys.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-huion-pentablet.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-huion-q620m-dial.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-ignored-mouse.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-keyboard-all-codes.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-keyboard-quirked.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-keyboard-razer-blackwidow.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-keyboard-razer-blade-stealth-videoswitch.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-keyboard-razer-blade-stealth.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-keyboard.c evdev: move the SYN_REPORT 1 filtering to the touchpad backend 2025-07-31 00:50:30 +00:00
litest-device-keypad-slide-switch.c evdev: add support for SW_KEYPAD_SLIDE 2025-12-11 13:28:41 +02:00
litest-device-lenovo-scrollpoint.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-lid-switch-surface3.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-lid-switch.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-logitech-media-keyboard-elite.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-logitech-trackball.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-magic-trackpad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-mouse-low-dpi.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-mouse-ps2.c test: add a typical PS/2 wheel mouse 2025-07-17 00:36:52 +00:00
litest-device-mouse-roccat.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-mouse-virtual.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-mouse-wheel-click-angle.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-mouse-wheel-click-count.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-mouse-wheel-hires-disabled.c plugin: ignore high-resolution wheel events from disabled wheels 2025-07-24 09:13:12 +10:00
litest-device-mouse-wheel-tilt.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-mouse.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-ms-nano-transceiver-mouse.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-ms-surface-cover.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-nexus4-touch-screen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-ploopy-pavonis-stylus.c test: add a test device for a pressureless tablet 2025-07-09 21:21:32 +00:00
litest-device-protocol-a-touch-screen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-qemu-usb-tablet.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-sony-vaio-keys.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-synaptics-hover.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-synaptics-i2c.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-synaptics-phantomclicks.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-synaptics-pressurepad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-synaptics-rmi4.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-synaptics-st.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-synaptics-t440.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-synaptics-x1-carbon-3rd.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-synaptics-x220.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-tablet-doubledial.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-tablet-mode-switch.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-tablet-rel-dial.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-thinkpad-extrabuttons.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-touch-screen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-touchpad-palm-threshold-zero.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-touchscreen-fuzz.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-touchscreen-invalid-range.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-touchscreen-mt-tool.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-trackpoint.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-uclogic-tablet.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-vmware-virtual-usb-mouse.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-bamboo-2fg-finger.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-bamboo-2fg-pad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-bamboo-2fg-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-bamboo-16fg-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-calibrated-tablet.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-cintiq-12wx-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-cintiq-13hdt-finger.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-cintiq-13hdt-pad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-cintiq-13hdt-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-cintiq-24hd-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-cintiq-24hdt-pad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-cintiq-pro-16-finger.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-cintiq-pro-16-pad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-cintiq-pro-16-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-ekr.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-hid4800-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-intuos3-pad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-intuos5-finger.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-intuos5-pad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-intuos5-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-isdv4-524c-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-isdv4-4200-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-isdv4-e6-finger.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-isdv4-e6-pen.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wacom-mobilestudio-pro-pad.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-waltop-tablet.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-wheel-only.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-xen-virtual-pointer.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-device-yubikey.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-int.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-main.c Fix clang-tidy false positives 2025-11-06 23:31:27 +00:00
litest-runner.c Use a newtype usec_t for timestamps for better type-safety 2025-12-12 04:15:15 +00:00
litest-runner.h Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest-selftest.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
litest.c test: change the gesture state color to normal yellow 2026-01-20 14:59:02 +10:00
litest.h touchpad: add support for fast swipe when 3fg drag is enabled 2026-02-02 06:44:48 +00:00
symbols-leak-test test: print the usage from the symbols-leak-test 2022-11-22 19:02:03 +00:00
test-builddir-lookup.c meson: revamp the debug build detection for the builddir lookup 2026-01-10 10:39:21 +00:00
test-device.c evdev: move the SYN_REPORT 1 filtering to the touchpad backend 2025-07-31 00:50:30 +00:00
test-gestures.c touchpad: add support for fast swipe when 3fg drag is enabled 2026-02-02 06:44:48 +00:00
test-keyboard.c test: fix the keycode obfuscation test 2025-08-01 04:02:57 +00:00
test-library-version.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
test-log.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
test-misc.c evdev: add support for SW_KEYPAD_SLIDE 2025-12-11 13:28:41 +02:00
test-pad.c meson.build: change from config.set10() and #if to config.set() and #ifdef 2025-07-28 12:04:09 +10:00
test-path.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
test-plugins-lua.c lua: install a timeout hook before any pcalls to prevent infinite loops 2026-01-27 00:02:15 +00:00
test-pointer.c test: switch another test to use logcapture 2025-08-01 04:02:57 +00:00
test-quirks.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
test-switch.c evdev: add support for SW_KEYPAD_SLIDE 2025-12-11 13:28:41 +02:00
test-tablet.c Add libinput_tablet_tool_get_name() for the tool's specific name 2026-01-14 16:44:01 +10:00
test-totem.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
test-touch.c meson.build: change from config.set10() and #if to config.set() and #ifdef 2025-07-28 12:04:09 +10:00
test-touchpad-buttons.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
test-touchpad-tap.c test: correct a copy/pasted comment 2026-01-20 13:14:24 +10:00
test-touchpad.c touchpad: don't disable on external mice until we see an event 2026-01-28 00:43:37 +00:00
test-trackball.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
test-trackpoint.c touchpad: add configurable timeouts to disable-while-trackpointing 2025-12-02 09:24:15 +10:00
test-udev.c Run clang-format over the code 2025-07-01 16:42:44 +10:00
test-util-includes.c.in test: rename test-util-includes.c to .c.in 2025-04-04 15:47:23 +00:00
test-utils.c Use a newtype usec_t for timestamps for better type-safety 2025-12-12 04:15:15 +00:00
test_quirks_files.py pre-commit: bump to latest ruff-format 2025-07-09 00:13:00 +00:00
valgrind.suppressions test: grab the device before any lid or tablet mode switches 2020-07-07 18:51:33 +10:00