summaryrefslogtreecommitdiff
path: root/gtk/gtkkineticscrolling.c
diff options
context:
space:
mode:
authorJosé Expósito <jose.exposito89@gmail.com>2021-06-22 18:44:05 +0200
committerCarlos Garnacho <carlosg@gnome.org>2022-01-26 22:49:53 +0100
commit62808722d269b538809a5aabdd3341af2740a221 (patch)
tree28b000688c0ceda23fd13ef5e373c8d3ed0257f1 /gtk/gtkkineticscrolling.c
parentf09338c8ded26ecb620937b4a10e59614460a065 (diff)
downloadgtk+-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.c14
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;
+ }
+}