[PATCH libinput] filter: require minimum acceleration factor of 0.3
Hans de Goede
hdegoede at redhat.com
Mon Jun 8 23:54:51 PDT 2015
Hi,
On 09-06-15 00:06, Peter Hutterer wrote:
> For really slow motions, the previous acceleration factor would go down to
> effectively zero. So the slower the mouse motion was, the more it would be
> slowed down which made the mouse at low speeds almost unusable.
>
> Cap the minimum acceleration at 0.3 which provides a predictable slow motion
> for the cursor when high precision is required.
>
> New/old acceleration functions comparison:
>
> ^
> | /
> | /
> ty| _________/
> | / /
> | / /
> | / /
> |/ / <----- new minimum accel factor
> | /
> |/___________________>
> tx
>
> i.e. the general shape is maintained, but it doesn't go to zero anymore. The
> functions aren't parallel, the new shape is slightly flatter than the previous
> one and they meet at the point where the functions flatten for the threshold
> (tx/ty). ascii art has its limits...
>
> https://bugzilla.redhat.com/show_bug.cgi?id=1227039
>
> 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/filter.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/filter.c b/src/filter.c
> index c54d866..ed5a184 100644
> --- a/src/filter.c
> +++ b/src/filter.c
> @@ -354,7 +354,7 @@ pointer_accel_profile_linear(struct motion_filter *filter,
> const double threshold = accel_filter->threshold; /* units/ms */
> const double incline = accel_filter->incline;
>
> - s1 = min(1, speed_in * 5);
> + s1 = min(1, 0.3 + speed_in * 4);
> s2 = 1 + (speed_in - threshold) * incline;
>
> return min(max_accel, s2 > 1 ? s2 : s1);
>
More information about the wayland-devel
mailing list