[PATCH libinput] touchpad: increase drag timeout

Hans de Goede hdegoede at redhat.com
Fri May 1 01:20:56 PDT 2015


Hi,

On 01-05-15 10:15, Peter Hutterer wrote:
> From: Velimir Lisec <lisec.velimir at gmail.com>
>
> libinput supports lifting a finger during dragging and setting it back down
> again to continue the drag. Curently the drag timeout is set to
> DEFAULT_TAP_TIMEOUT. That is to short, when we're dragging the finger needs to
> have enough time to move from one edge of the touchpad to the other. 180ms is
> too short for that and causes false timeouts and thus button releases that
> cancel the drag.
>
> Introduce DEFAULT_DRAG_TIMEOUT and set it to 500 ms.
>
> Signed-off-by: Velimir Lisec <lisec.velimir at gmail.com>
> Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

Makes sense:

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

Regards,

Hans

> ---
>   src/evdev-mt-touchpad-tap.c | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/src/evdev-mt-touchpad-tap.c b/src/evdev-mt-touchpad-tap.c
> index 50e1512..70c45ff 100644
> --- a/src/evdev-mt-touchpad-tap.c
> +++ b/src/evdev-mt-touchpad-tap.c
> @@ -37,6 +37,7 @@
>   #define CASE_RETURN_STRING(a) case a: return #a
>
>   #define DEFAULT_TAP_TIMEOUT_PERIOD 180
> +#define DEFAULT_DRAG_TIMEOUT_PERIOD 500
>   #define DEFAULT_TAP_MOVE_THRESHOLD TP_MM_TO_DPI_NORMALIZED(3)
>
>   enum tap_event {
> @@ -129,6 +130,12 @@ tp_tap_set_timer(struct tp_dispatch *tp, uint64_t time)
>   }
>
>   static void
> +tp_tap_set_drag_timer(struct tp_dispatch *tp, uint64_t time)
> +{
> +	libinput_timer_set(&tp->tap.timer, time + DEFAULT_DRAG_TIMEOUT_PERIOD);
> +}
> +
> +static void
>   tp_tap_clear_timer(struct tp_dispatch *tp)
>   {
>   	libinput_timer_cancel(&tp->tap.timer);
> @@ -380,7 +387,7 @@ tp_tap_dragging_handle_event(struct tp_dispatch *tp,
>   		break;
>   	case TAP_EVENT_RELEASE:
>   		tp->tap.state = TAP_STATE_DRAGGING_WAIT;
> -		tp_tap_set_timer(tp, time);
> +		tp_tap_set_drag_timer(tp, time);
>   		break;
>   	case TAP_EVENT_MOTION:
>   	case TAP_EVENT_TIMEOUT:
>


More information about the wayland-devel mailing list