libinput/test
Peter Hutterer abdca33387 touchpad: introduce MULTITAP for multi-tap-and-drag
Once we have a doubletap, enter a loop in the state machine where we can tap
multiple times and either get a multi-click or a multi-click drag-and-drop.

The sequence down/up down/up down/up produces a triple-click. The sequence
down/up down/up down/up down produces a triple-click with a button down for
dragging. Yes, that glorious octuple-tap-and-drag, it is now possible. World
domination has been achieved, thank you for playing.

We don't know when we finish tapping now, so add a timeout to send the last
click event once the finger has been released for the last time. This
guarantees that the timestamp of the last button down is later than the
last release. This avoids the bug fixed in synaptics commit
xf86-input-synaptics-1.8.0-21-g37d34f0 (some application don't handle
doubletap correctly without the timestamps).

This works for double-tap immediately, for multi-tap we need to remember the
timestamp of the first press event and use it for the release event so that
there's a forced gap between the release and the second press.

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
2015-04-17 12:59:22 +10:00
..
50-litest.conf test: Prefix litest created device names with litest 2014-06-25 11:11:45 +10:00
build-cxx.cc test: Add include from C++ build test 2014-03-29 00:51:44 +01:00
build-pedantic.c build-pedantic: use main(void) 2015-01-12 07:54:12 +10:00
device.c evdev: any scroll device must have CAP_POINTER 2015-04-13 11:47:39 +02:00
keyboard.c test: fix Coverity complaints 2015-02-20 10:03:09 +10:00
litest-alps-semi-mt.c cosmetic: more duplicate empty line removal 2015-03-02 16:48:51 +10:00
litest-bcm5974.c test: auto-update for BTN_TOOL_* when using litest_touch_ functions 2014-07-23 15:08:15 +10:00
litest-generic-singletouch.c test: add a generic single-touch device 2014-08-26 13:49:16 +10:00
litest-int.h test: add per-device udev rule support 2015-02-03 10:34:26 +10:00
litest-keyboard-razer-blackwidow.c test: add the Razer BlackWidow keyboard device 2015-04-08 11:42:50 +02:00
litest-keyboard.c style fix: Remove duplicate empty lines 2014-07-22 09:00:45 +10:00
litest-mouse.c test: drop empty test device interfaces 2015-01-06 09:53:25 +10:00
litest-ms-surface-cover.c test: rename LITEST_POINTER to LITEST_RELATIVE 2014-11-11 09:55:42 +10:00
litest-protocol-a-touch-screen.c test: add protocol A touch screen tests 2015-03-02 12:45:47 +10:00
litest-qemu-usb-tablet.c test: add QEMU tablet as test device 2014-11-11 09:55:42 +10:00
litest-synaptics-hover.c test: add a semi-mt + hover synaptics touchpad 2015-01-16 07:42:50 +10:00
litest-synaptics-st.c test: auto-update for BTN_TOOL_* when using litest_touch_ functions 2014-07-23 15:08:15 +10:00
litest-synaptics-t440.c test: auto-update for BTN_TOOL_* when using litest_touch_ functions 2014-07-23 15:08:15 +10:00
litest-synaptics-x1-carbon-3rd.c test: add per-device udev rule support 2015-02-03 10:34:26 +10:00
litest-synaptics.c test: auto-update for BTN_TOOL_* when using litest_touch_ functions 2014-07-23 15:08:15 +10:00
litest-trackpoint.c test: drop empty test device interfaces 2015-01-06 09:53:25 +10:00
litest-vmware-virtual-usb-mouse.c test: add VMWare Virtual USB Mouse device 2014-11-11 09:55:42 +10:00
litest-wacom-intuos-finger.c test: add a Wacom Intuos 5 Finger test device 2015-03-05 13:30:49 +10:00
litest-wacom-touch.c test: drop unused includes for libinput-util.h 2014-06-11 09:43:52 +10:00
litest-wheel-only.c test: add a scrollwheel-only device 2015-04-13 11:48:38 +02:00
litest-xen-virtual-pointer.c test: add Xen Virtual Pointer device 2014-11-11 09:55:42 +10:00
litest.c test: add litest_is_button_event 2015-04-17 12:59:22 +10:00
litest.h test: add litest_is_button_event 2015-04-17 12:59:22 +10:00
log.c path: store the udev device instead of just the devnode 2014-11-25 16:33:01 +10:00
Makefile.am test: add a scrollwheel-only device 2015-04-13 11:48:38 +02:00
misc.c Revert "touchpad: parse the TOUCHPAD_RESOLUTION property" 2015-03-20 11:09:05 +10:00
path.c cosmetic: more duplicate empty line removal 2015-03-02 16:48:51 +10:00
pointer.c test: middle button emulation tests 2015-04-17 12:50:08 +10:00
symbols-leak-test.in add simple symbols leak checker 2015-02-13 10:20:44 +10:00
touch.c cosmetic: more duplicate empty line removal 2015-03-02 16:48:51 +10:00
touchpad.c touchpad: introduce MULTITAP for multi-tap-and-drag 2015-04-17 12:59:22 +10:00
trackpoint.c Add pointer axis sources to the API 2014-12-24 10:47:00 +10:00
udev.c Add libinput_set_user_data 2014-12-23 14:49:39 +10:00
valgrind.suppressions test: add protocol A touch screen tests 2015-03-02 12:45:47 +10:00