diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2018-07-19 14:52:44 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2018-07-19 14:52:44 +1000 |
commit | 23d5f2a59013c3ec350285fbd5039f3414f00814 (patch) | |
tree | 19647a48bd60910b46802a8167430b108bf1ed1b /src/evdev-mt-touchpad.c | |
parent | a3cc5f3f649ea87fa1a08fb2ff3852ddea76352f (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.c | 4 |
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 |