Commit 4f63d839 authored by Christian Hergert's avatar Christian Hergert
Browse files

kineticscrolling: avoid stutter at tail of kinetic deceleration

When decelerating the kinetic scroll, we can get into a position where it
looks like we are stuttering. This happens because the amount we move is
so little that it takes multiple frames to make forward progress by one

This prevents that by detecting when we have reached the slow stutter of
the deceleration and simply stops the deceleration phase immediately.
parent aa99c64f
......@@ -152,6 +152,8 @@ gtk_kinetic_scrolling_tick (GtkKineticScrolling *data,
gdouble last_position = data->position;
gdouble last_time = data->t;
gdouble exp_part;
data->t += time_delta;
......@@ -168,7 +170,8 @@ gtk_kinetic_scrolling_tick (GtkKineticScrolling *data,
gtk_kinetic_scrolling_init_overshoot(data, data->upper, data->position, data->velocity);
else if (fabs(data->velocity) < 1)
else if (fabs(data->velocity) < 1 ||
(last_time != 0.0 && fabs(data->position - last_position) < 1))
data->position = round(data->position);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment