[PATCH libinput] touchpad: on a non-clickpad, reset the motion history on nfingers change

Hans de Goede hdegoede at redhat.com
Thu Aug 18 09:22:26 UTC 2016


Hi,

On 18-08-16 08:02, Peter Hutterer wrote:
> The only reason to have more than one finger on a non-clickpad is to tap,
> scroll or gesture. In all cases resetting the motion history is a good idea to
> avoid jumps moving from 2 to 1 finger.
>
> https://bugs.freedesktop.org/show_bug.cgi?id=91695
> https://bugs.freedesktop.org/show_bug.cgi?id=97194
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

Looks good to me:

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

Regards,

Hans


> ---
>  src/evdev-mt-touchpad.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
> index 6cebfa3..3baed09 100644
> --- a/src/evdev-mt-touchpad.c
> +++ b/src/evdev-mt-touchpad.c
> @@ -957,8 +957,11 @@ tp_need_motion_history_reset(struct tp_dispatch *tp)
>  {
>  	bool rc = false;
>
> -	/* semi-mt finger postions may "jump" when nfingers changes */
> -	if (tp->semi_mt && tp->nfingers_down != tp->old_nfingers_down)
> +	/* Semi-mt finger postions may "jump" when nfingers changes. And on
> +	 * a non-clickpad the only reason to have more than one finger down
> +	 * is scrolling/gesture, so a reset just makes things sane again */
> +	if ((tp->semi_mt || !tp->buttons.is_clickpad) &&
> +	    tp->nfingers_down != tp->old_nfingers_down)
>  		return true;
>
>  	/* if we're transitioning between slots and fake touches in either
>


More information about the wayland-devel mailing list