mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-02-05 20:20:25 +01:00
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> |
||
|---|---|---|
| .. | ||
| evdev-mt-touchpad-tap.c | ||
| evdev-mt-touchpad.c | ||
| evdev-mt-touchpad.h | ||
| evdev-touchpad.c | ||
| evdev.c | ||
| evdev.h | ||
| filter.c | ||
| filter.h | ||
| libinput-private.h | ||
| libinput-util.c | ||
| libinput-util.h | ||
| libinput-version.h.in | ||
| libinput.c | ||
| libinput.h | ||
| libinput.pc.in | ||
| Makefile.am | ||
| path.c | ||
| path.h | ||
| udev-seat.c | ||
| udev-seat.h | ||