From 183b67b69dc6a83cd8edc6c74550922af6509626 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 9 May 2017 15:07:20 +1000 Subject: [PATCH] touchpad: pull the tap exclusion zone down to the full edge zone This was originally left outside of the button areas in case users tap in those zones, but we're getting false tap events in that zone. On a 100mm touchpad, the edge zone is merely 5mm, it's acceptable to ignore taps in that area even in the software button. We can revisit this if we see tap detection failures in the future. https://bugzilla.redhat.com/show_bug.cgi?id=1415796 Signed-off-by: Peter Hutterer Reviewed-by: Hans de Goede (cherry picked from commit 211bed2c25e4282820e5155191d4dc09201f1210) --- src/evdev-mt-touchpad.c | 11 ++--------- test/test-touchpad.c | 8 ++++---- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c index 73f0fdd8..cf9a511d 100644 --- a/src/evdev-mt-touchpad.c +++ b/src/evdev-mt-touchpad.c @@ -544,15 +544,8 @@ tp_palm_tap_is_palm(const struct tp_dispatch *tp, const struct tp_touch *t) t->point.x < tp->palm.right_edge) return false; - /* We're inside the left/right palm edge and not in one of the - * software button areas */ - if (t->point.y < tp->buttons.bottom_area.top_edge) { - evdev_log_debug(tp->device, - "palm: palm-tap detected\n"); - return true; - } - - return false; + evdev_log_debug(tp->device, "palm: palm-tap detected\n"); + return true; } static bool diff --git a/test/test-touchpad.c b/test/test-touchpad.c index c0de99bb..ecbdc430 100644 --- a/test/test-touchpad.c +++ b/test/test-touchpad.c @@ -1176,15 +1176,15 @@ START_TEST(touchpad_palm_detect_tap_softbuttons) litest_drain_events(li); - litest_touch_down(dev, 0, 95, 5); + litest_touch_down(dev, 0, 99, 99); litest_touch_up(dev, 0); litest_assert_empty_queue(li); - litest_touch_down(dev, 0, 5, 5); + litest_touch_down(dev, 0, 1, 99); litest_touch_up(dev, 0); litest_assert_empty_queue(li); - litest_touch_down(dev, 0, 5, 99); + litest_touch_down(dev, 0, 10, 99); litest_touch_up(dev, 0); litest_assert_button_event(li, BTN_LEFT, @@ -1194,7 +1194,7 @@ START_TEST(touchpad_palm_detect_tap_softbuttons) LIBINPUT_BUTTON_STATE_RELEASED); litest_assert_empty_queue(li); - litest_touch_down(dev, 0, 95, 99); + litest_touch_down(dev, 0, 90, 99); litest_touch_up(dev, 0); litest_assert_button_event(li, BTN_LEFT,