accel_profile_smooth_simple: Fix jump in acceleration curve
authorHans de Goede <hdegoede@redhat.com>
Fri, 4 Jul 2014 15:17:14 +0000 (17:17 +0200)
committerPeter Hutterer <peter.hutterer@who-t.net>
Wed, 9 Jul 2014 02:40:01 +0000 (12:40 +1000)
There was an error in the value passed to the second calc_penumbral_gradient
call causing a jump in the acceleration curve. This commit fixes this.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
src/filter.c

index 487669c..8192dd0 100644 (file)
@@ -353,6 +353,8 @@ pointer_accel_profile_smooth_simple(struct motion_filter *filter,
        if (velocity >= accel)
                return accel;
 
-       smooth_accel_coefficient = calc_penumbral_gradient(velocity / accel);
+       /* Velocity is between 1.0 and accel, scale this to 0.0 - 1.0 */
+       velocity = (velocity - 1.0) / (accel - 1.0);
+       smooth_accel_coefficient = calc_penumbral_gradient(velocity);
        return 1.0 + (smooth_accel_coefficient * (accel - 1.0));
 }