diff options
author | José Expósito <jose.exposito89@gmail.com> | 2021-06-22 18:27:14 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2022-01-26 22:49:53 +0100 |
commit | ec91b2de100b966d6111497f0455d9e336944ed5 (patch) | |
tree | 85e1a181b1630de3d5dce0bd6f493c92149f99dc | |
parent | 5cd289dc1d908e79106e20eaa4a85749f2286606 (diff) | |
download | gtk+-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.c | 33 |
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; |