diff options
author | José Expósito <jose.exposito89@gmail.com> | 2021-06-22 18:44:05 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2022-01-26 22:49:53 +0100 |
commit | 62808722d269b538809a5aabdd3341af2740a221 (patch) | |
tree | 28b000688c0ceda23fd13ef5e373c8d3ed0257f1 /gtk/gtkkineticscrolling.c | |
parent | f09338c8ded26ecb620937b4a10e59614460a065 (diff) | |
download | gtk+-62808722d269b538809a5aabdd3341af2740a221.tar.gz |
kineticscrolling: Add stop function
Move the logic to stop kinetic scrolling to its own function and allow
to call it from the outside.
Part-of: <!3454>
Diffstat (limited to 'gtk/gtkkineticscrolling.c')
-rw-r--r-- | gtk/gtkkineticscrolling.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gtk/gtkkineticscrolling.c b/gtk/gtkkineticscrolling.c index 87618acd7c..4eab5dcc84 100644 --- a/gtk/gtkkineticscrolling.c +++ b/gtk/gtkkineticscrolling.c @@ -202,9 +202,7 @@ gtk_kinetic_scrolling_tick (GtkKineticScrolling *data, else if (fabs(data->velocity) < 1 || (last_time != 0.0 && fabs(data->position - last_position) < 1)) { - data->phase = GTK_KINETIC_SCROLLING_PHASE_FINISHED; - data->position = round(data->position); - data->velocity = 0; + gtk_kinetic_scrolling_stop (data); } break; } @@ -249,3 +247,13 @@ gtk_kinetic_scrolling_tick (GtkKineticScrolling *data, return data->phase != GTK_KINETIC_SCROLLING_PHASE_FINISHED; } +void +gtk_kinetic_scrolling_stop (GtkKineticScrolling *data) +{ + if (data->phase == GTK_KINETIC_SCROLLING_PHASE_DECELERATING) + { + data->phase = GTK_KINETIC_SCROLLING_PHASE_FINISHED; + data->position = round (data->position); + data->velocity = 0; + } +} |