summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Expósito <jose.exposito89@gmail.com>2021-06-22 18:27:14 +0200
committerCarlos Garnacho <carlosg@gnome.org>2022-01-26 22:49:53 +0100
commitec91b2de100b966d6111497f0455d9e336944ed5 (patch)
tree85e1a181b1630de3d5dce0bd6f493c92149f99dc
parent5cd289dc1d908e79106e20eaa4a85749f2286606 (diff)
downloadgtk+-ec91b2de100b966d6111497f0455d9e336944ed5.tar.gz
gtkeventcontrollerscroll: Refactor scroll end
Move the logic to end scrolling to its own function to be able to reuse it. Refactor, no functional changes. Part-of: <!3454>
-rw-r--r--gtk/gtkeventcontrollerscroll.c33
1 files changed, 23 insertions, 10 deletions
diff --git a/gtk/gtkeventcontrollerscroll.c b/gtk/gtkeventcontrollerscroll.c
index cfe284cd71..e0acee7a2e 100644
--- a/gtk/gtkeventcontrollerscroll.c
+++ b/gtk/gtkeventcontrollerscroll.c
@@ -251,6 +251,28 @@ gtk_event_controller_scroll_begin (GtkEventController *controller)
}
static gboolean
+gtk_event_controller_scroll_end (GtkEventController *controller)
+{
+ GtkEventControllerScroll *scroll = GTK_EVENT_CONTROLLER_SCROLL (controller);
+
+ if (!scroll->active)
+ return FALSE;
+
+ g_signal_emit (controller, signals[SCROLL_END], 0);
+ scroll->active = FALSE;
+
+ if (scroll->flags & GTK_EVENT_CONTROLLER_SCROLL_KINETIC)
+ {
+ double vel_x, vel_y;
+
+ scroll_history_finish (scroll, &vel_x, &vel_y);
+ g_signal_emit (controller, signals[DECELERATE], 0, vel_x, vel_y);
+ }
+
+ return TRUE;
+}
+
+static gboolean
gtk_event_controller_scroll_handle_event (GtkEventController *controller,
GdkEvent *event,
double x,
@@ -343,17 +365,8 @@ gtk_event_controller_scroll_handle_event (GtkEventController *controller,
if (scroll->active && gdk_scroll_event_is_stop (event))
{
- g_signal_emit (controller, signals[SCROLL_END], 0);
- scroll->active = FALSE;
+ gtk_event_controller_scroll_end (controller);
handled = FALSE;
-
- if (scroll->flags & GTK_EVENT_CONTROLLER_SCROLL_KINETIC)
- {
- double vel_x, vel_y;
-
- scroll_history_finish (scroll, &vel_x, &vel_y);
- g_signal_emit (controller, signals[DECELERATE], 0, vel_x, vel_y);
- }
}
return handled;