[PATCH libinput] touchpad: pull the tap exclusion zone down to the full edge zone

Hans de Goede hdegoede at redhat.com
Wed May 10 06:44:02 UTC 2017


Hi,

On 10-05-17 04:21, Peter Hutterer wrote:
> 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 at who-t.net>

Sounds reasonable to me and the code changes look good:

Reviewed-by: Hans de Goede <hdegoede at redhat.com>

Regards,

Hans


> ---
>   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 e0757e17..17b14bc8 100644
> --- a/src/evdev-mt-touchpad.c
> +++ b/src/evdev-mt-touchpad.c
> @@ -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
> diff --git a/test/test-touchpad.c b/test/test-touchpad.c
> index 2731500a..d91c2449 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,
> 


More information about the wayland-devel mailing list