gtkeventcontrollerscroll: Refactor scroll end
authorJosé Expósito <jose.exposito89@gmail.com>
Tue, 22 Jun 2021 16:27:14 +0000 (18:27 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Wed, 26 Jan 2022 21:49:53 +0000 (22:49 +0100)
Move the logic to end scrolling to its own function to be able to
reuse it.

Refactor, no functional changes.

Part-of: <!3454>

gtk/gtkeventcontrollerscroll.c

index cfe284cd71ff42a6540cd0e77c236bde8d8f9696..e0acee7a2ef419da995d46568b06f597e821cf8f 100644 (file)
@@ -250,6 +250,28 @@ gtk_event_controller_scroll_begin (GtkEventController *controller)
   return TRUE;
 }
 
+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,
@@ -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;