libinput/src
Peter Hutterer 4e8f1259cc touchpad: add fake-touch support for BTN_TOOL_DOUBLETAP and friends
This enables two-finger scrolling and two- and three-finger tapping on a
single-touch touchpad if BTN_TOOL_DOUBLETAP and BTN_TOOL_TRIPLETAP is set.

These require a bit of special processing:
BTN_TOUCH is set with the first finger down, but somewhat randomly unset and
re-set when switching between the various BTN_TOOL_*TAP values.
BTN_TOOL_<N>TAP is only set for N fingers down, thus a double->triple move
will see a release for DOUBLETAP and a press for TRIPLETAP. This may happen in
the same event, or across two consecutive events.

This patch adds a fake_touches mask to the touchpad struct. The mask is set
for each matching BTN_* event and used to count the number of expected
fake touchpoints. From that we begin/end the number of actual touchpoints
required. Fake touchpoints take their x/y coordinates from the first
touchpoint, which reads ABS_X/ABS_Y.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2014-03-24 16:39:12 +10:00
..
evdev-mt-touchpad-tap.c touchpad: Filter motion in a certain number of tap states 2014-03-24 14:56:41 +10:00
evdev-mt-touchpad.c touchpad: add fake-touch support for BTN_TOOL_DOUBLETAP and friends 2014-03-24 16:39:12 +10:00
evdev-mt-touchpad.h touchpad: add fake-touch support for BTN_TOOL_DOUBLETAP and friends 2014-03-24 16:39:12 +10:00
evdev-touchpad.c libinput: Fix the close_restricted interface callback 2014-03-04 15:21:38 +10:00
evdev.c Add the shell for a multitouch-compatible touchpad implementation 2014-03-24 14:56:40 +10:00
evdev.h Add the shell for a multitouch-compatible touchpad implementation 2014-03-24 14:56:40 +10:00
filter.c Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
filter.h Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
libinput-private.h Split up the touch event into the different touch types 2014-02-26 19:32:33 +01:00
libinput-util.c Add a customizable log handler 2014-02-19 08:35:25 +10:00
libinput-util.h util: add min/max macros 2014-02-17 14:35:06 +10:00
libinput-version.h.in Port evdev code to be used as a shared library 2013-11-12 22:37:20 +01:00
libinput.c libinput: Fix the close_restricted interface callback 2014-03-04 15:21:38 +10:00
libinput.h Split up the touch event into the different touch types 2014-02-26 19:32:33 +01:00
libinput.pc.in Add libudev and -lm to Requires.private 2013-12-21 12:10:19 +01:00
Makefile.am touchpad: add support for multi-finger tapping 2014-03-24 14:56:40 +10:00
path.c path: Silence -Wmaybe-uninitialized compiler warning 2014-02-26 19:32:33 +01:00
path.h path: modify backend to allow for more than one device 2014-02-10 11:23:35 +10:00
udev-seat.c Make it possible to have persistent libinput_seat instances 2014-02-10 22:28:46 +01:00
udev-seat.h udev: Drop unused seat_name in struct udev_seat 2014-01-16 20:42:30 +01:00