[PATCH libinput] touchpad: make the hysteresis dependent on physical distance

Hans de Goede hdegoede at redhat.com
Fri Jun 12 00:39:40 PDT 2015


Hi,

On 12-06-15 08:09, Peter Hutterer wrote:
> Some touchpads, e.g. the Cyapa in the Acer c720 have a small axis range
> ([0, 870], [0, 470]), so the diagonal/magic value yields a hysteresis margin
> of 1 device unit. On that device, that's one-tenth of a millimeter, causing
> pointer motion just by holding the finger.
>
> For touchpads that provide a physical resolution, set the hysteresis axes to
> 0.5mm and do away with the magic factor.
>
> https://bugzilla.redhat.com/show_bug.cgi?id=1230441
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

Yes I think this is a good idea:

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

Can you also ask the reporter of:

https://bugs.freedesktop.org/show_bug.cgi?id=90590

To test libinput/master once you've pushed this? It will likely
help with his problem too.

Regards,

Hans


> ---
>   src/evdev-mt-touchpad.c | 16 ++++++++++++----
>   1 file changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
> index 8c28ff7..e9870ad 100644
> --- a/src/evdev-mt-touchpad.c
> +++ b/src/evdev-mt-touchpad.c
> @@ -1495,10 +1495,18 @@ tp_init(struct tp_dispatch *tp,
>   						       EV_ABS,
>   						       ABS_MT_DISTANCE);
>
> -	tp->hysteresis_margin.x =
> -		diagonal / DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR;
> -	tp->hysteresis_margin.y =
> -		diagonal / DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR;
> +	if (device->abs.fake_resolution) {
> +		tp->hysteresis_margin.x =
> +			diagonal / DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR;
> +		tp->hysteresis_margin.y =
> +			diagonal / DEFAULT_HYSTERESIS_MARGIN_DENOMINATOR;
> +	} else {
> +		int res_x = tp->device->abs.absinfo_x->resolution,
> +		    res_y = tp->device->abs.absinfo_y->resolution;
> +
> +		tp->hysteresis_margin.x = res_x/2;
> +		tp->hysteresis_margin.y = res_y/2;
> +	}
>
>   	if (tp_init_accel(tp, diagonal) != 0)
>   		return -1;
>


More information about the wayland-devel mailing list