From 62808722d269b538809a5aabdd3341af2740a221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Date: Tue, 22 Jun 2021 18:44:05 +0200 Subject: 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: --- gtk/gtkkineticscrolling.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'gtk/gtkkineticscrolling.c') 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; + } +} -- cgit v1.2.1