summaryrefslogtreecommitdiff
path: root/src/evdev-mt-touchpad.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2018-07-19 14:52:44 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2018-07-19 14:52:44 +1000
commit23d5f2a59013c3ec350285fbd5039f3414f00814 (patch)
tree19647a48bd60910b46802a8167430b108bf1ed1b /src/evdev-mt-touchpad.c
parenta3cc5f3f649ea87fa1a08fb2ff3852ddea76352f (diff)
touchpad: don't NONE or HOVERING touches towards the touch
To trigger this, we'd need 1, 2, 3 fingers down, release fingers 1 and 2 but keep 3 down. Then put finger 1 down again. Touches 1 and 3 are alive now, touch 2 is in state NONE. During the thumb detection we took the first touch not in BEGIN and assigned it to "first" - this would now be the second touch in state NONE. Real effect is relatively minimal since we only use the coordinates here. Fixes https://gitlab.freedesktop.org/libinput/libinput/issues/89 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'src/evdev-mt-touchpad.c')
-rw-r--r--src/evdev-mt-touchpad.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
index 5554c0bd..25d0f23b 100644
--- a/src/evdev-mt-touchpad.c
+++ b/src/evdev-mt-touchpad.c
@@ -1472,6 +1472,10 @@ tp_detect_thumb_while_moving(struct tp_dispatch *tp)
struct phys_coords mm;
tp_for_each_touch(tp, t) {
+ if (t->state == TOUCH_NONE ||
+ t->state == TOUCH_HOVERING)
+ continue;
+
if (t->state != TOUCH_BEGIN)
first = t;
else