forked from AuroraMiddleware/gtk
gtkkineticscrolling: Do not take distance based shortcuts
The pixel distance could be small enough between tick() calls that this kind of checks might potentially become a problem. Rely only on the calculated velocity to trigger the STOPPED phase, and use a lower threshold to avoid cutting the animation too early. Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/4725
This commit is contained in:
parent
65839f67f8
commit
f7d9ede82d
@ -181,8 +181,6 @@ gtk_kinetic_scrolling_tick (GtkKineticScrolling *data,
|
||||
{
|
||||
case GTK_KINETIC_SCROLLING_PHASE_DECELERATING:
|
||||
{
|
||||
double last_position = data->position;
|
||||
double last_time = data->t;
|
||||
double exp_part;
|
||||
|
||||
data->t += time_delta;
|
||||
@ -199,8 +197,7 @@ gtk_kinetic_scrolling_tick (GtkKineticScrolling *data,
|
||||
{
|
||||
gtk_kinetic_scrolling_init_overshoot(data, data->upper, data->position, data->velocity);
|
||||
}
|
||||
else if (fabs(data->velocity) < 1 ||
|
||||
(last_time != 0.0 && fabs(data->position - last_position) < 1))
|
||||
else if (fabs(data->velocity) < 0.1)
|
||||
{
|
||||
gtk_kinetic_scrolling_stop (data);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user