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 <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
Peter Hutterer 2017-05-09 15:07:20 +10:00
parent 368006ef40
commit 211bed2c25
2 changed files with 6 additions and 13 deletions

View file

@ -557,15 +557,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

View file

@ -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,