diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index 7276d2c24d..6ad1fb6304 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -309,29 +309,25 @@ click_pressed_cb (GtkGestureClick *gesture, } static gboolean -touch_release_in_button (GtkButton *button, - double x, - double y) +touch_release_in_button (GtkGestureClick *gesture, + GtkWidget *widget, + double x, + double y) { GdkEvent *event; - event = gtk_get_current_event (); + event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (gesture)); if (!event) return FALSE; if (gdk_event_get_event_type (event) != GDK_TOUCH_END) - { - gdk_event_unref (event); - return FALSE; - } + return FALSE; - gdk_event_unref (event); + if (!gtk_widget_contains (widget, x, y)) + return FALSE; - if (gtk_widget_contains (GTK_WIDGET (button), x, y)) - return TRUE; - - return FALSE; + return TRUE; } static void @@ -348,7 +344,7 @@ click_released_cb (GtkGestureClick *gesture, gtk_button_do_release (button, gtk_widget_is_sensitive (GTK_WIDGET (button)) && (priv->in_button || - touch_release_in_button (button, x, y))); + touch_release_in_button (gesture, widget, x, y))); sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); diff --git a/gtk/gtkcellrendereraccel.c b/gtk/gtkcellrendereraccel.c index 7d172432e1..7c3fc2c526 100644 --- a/gtk/gtkcellrendereraccel.c +++ b/gtk/gtkcellrendereraccel.c @@ -539,8 +539,10 @@ key_controller_key_pressed (GtkEventControllerKey *key, gboolean cleared = FALSE; GdkModifierType accel_mods = 0; guint accel_key; + GdkEvent *event; - if (!gdk_key_event_get_match (gtk_get_current_event (), &accel_key, &accel_mods)) + event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (key)); + if (!gdk_key_event_get_match (event, &accel_key, &accel_mods)) return FALSE; if (accel_mods == 0) diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index 3edb540074..277138fe32 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -2877,8 +2877,7 @@ gtk_notebook_motion (GtkEventController *controller, if (!page) return; - if (!gtk_get_current_event_state (&state)) - return; + state = gtk_event_controller_get_current_event_state (controller); if (!(state & GDK_BUTTON1_MASK) && notebook->pressed_button != 0) @@ -2905,7 +2904,7 @@ gtk_notebook_motion (GtkEventController *controller, notebook->detached_tab = notebook->cur_page; surface = gtk_native_get_surface (gtk_widget_get_native (GTK_WIDGET (notebook))); - device = gtk_get_current_event_device (); + device = gtk_event_controller_get_current_event_device (controller); content = gdk_content_provider_new_union ((GdkContentProvider *[2]) { gtk_notebook_root_content_new (notebook), diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c index 934a834762..110bfa7acb 100644 --- a/gtk/gtkplacessidebar.c +++ b/gtk/gtkplacessidebar.c @@ -3420,7 +3420,7 @@ on_row_released (GtkGestureClick *gesture, NULL); button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)); - gtk_get_current_event_state (&state); + state = gtk_event_controller_get_current_event_state (GTK_EVENT_CONTROLLER (gesture)); if (row) { diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index db66c3ff9d..3a965ac8f2 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -30,6 +30,7 @@ #include "gtkadjustmentprivate.h" #include "gtkeventcontrollermotion.h" #include "gtkeventcontrollerscroll.h" +#include "gtkeventcontrollerprivate.h" #include "gtkgesturedrag.h" #include "gtkgesturelongpress.h" #include "gtkgesturepan.h" @@ -1171,9 +1172,10 @@ captured_scroll_cb (GtkEventControllerScroll *scroll, } static void -captured_motion (GtkScrolledWindow *sw, - gdouble x, - gdouble y) +captured_motion (GtkEventController *controller, + double x, + double y, + GtkScrolledWindow *sw) { GtkScrolledWindowPrivate *priv = gtk_scrolled_window_get_instance_private (sw); GdkDevice *source_device; @@ -1185,7 +1187,10 @@ captured_motion (GtkScrolledWindow *sw, if (!priv->use_indicators) return; - event = gtk_get_current_event (); + target = gtk_event_controller_get_target (controller); + state = gtk_event_controller_get_current_event_state (controller); + event = gtk_event_controller_get_current_event (controller); + source_device = gdk_event_get_source_device (event); input_source = gdk_device_get_source (source_device); @@ -1194,10 +1199,6 @@ captured_motion (GtkScrolledWindow *sw, if (priv->vscrollbar_visible) indicator_start_fade (&priv->vindicator, 1.0); - state = gdk_event_get_modifier_state (event); - - target = gtk_widget_pick (GTK_WIDGET (sw), x, y, GTK_PICK_DEFAULT); - if (!target && (state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) != 0) { @@ -1218,8 +1219,6 @@ captured_motion (GtkScrolledWindow *sw, else indicator_set_over (&priv->hindicator, FALSE); } - - gdk_event_unref (event); } static gboolean @@ -1259,9 +1258,7 @@ scroll_controller_scroll (GtkEventControllerScroll *scroll, gboolean shifted; GdkModifierType state; - if (!gtk_get_current_event_state (&state)) - return GDK_EVENT_PROPAGATE; - + state = gtk_event_controller_get_current_event_state (GTK_EVENT_CONTROLLER (scroll)); shifted = (state & GDK_SHIFT_MASK) != 0; gtk_scrolled_window_invalidate_overshoot (scrolled_window); @@ -1343,8 +1340,8 @@ scroll_controller_decelerate (GtkEventControllerScroll *scroll, gboolean shifted; GdkModifierType state; - if (!gtk_get_current_event_state (&state)) - return; + + state = gtk_event_controller_get_current_event_state (GTK_EVENT_CONTROLLER (scroll)); shifted = (state & GDK_SHIFT_MASK) != 0; @@ -1970,8 +1967,8 @@ gtk_scrolled_window_init (GtkScrolledWindow *scrolled_window) controller = gtk_event_controller_motion_new (); gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE); - g_signal_connect_swapped (controller, "motion", - G_CALLBACK (captured_motion), scrolled_window); + g_signal_connect (controller, "motion", + G_CALLBACK (captured_motion), scrolled_window); gtk_widget_add_controller (widget, controller); widget_node = gtk_widget_get_css_node (widget); diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 261e46b68e..c52d642ebf 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -8142,7 +8142,7 @@ gtk_text_view_value_changed (GtkAdjustment *adjustment, if (gtk_gesture_is_active (priv->drag_gesture)) { GdkEvent *current_event; - current_event = gtk_get_current_event (); + current_event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (priv->drag_gesture)); if (current_event != NULL) { if (gdk_event_get_event_type (current_event) == GDK_SCROLL) @@ -8621,20 +8621,14 @@ gtk_text_view_get_menu_model (GtkTextView *text_view) } static void -gtk_text_view_do_popup (GtkTextView *text_view, - GdkEvent *event) +gtk_text_view_do_popup (GtkTextView *text_view, + GdkEvent *trigger_event) { GtkTextViewPrivate *priv = text_view->priv; - GdkEvent *trigger_event; if (!gtk_widget_get_realized (GTK_WIDGET (text_view))) return; - if (event) - trigger_event = (GdkEvent *)event; - else - trigger_event = gtk_get_current_event (); - gtk_text_view_update_clipboard_actions (text_view); if (!priv->popup_menu) @@ -8709,9 +8703,6 @@ gtk_text_view_do_popup (GtkTextView *text_view, } gtk_popover_popup (GTK_POPOVER (priv->popup_menu)); - - if (trigger_event && trigger_event != event) - gdk_event_unref (trigger_event); } static void diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 59cf8d94c3..8cfd04254a 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -1425,7 +1425,7 @@ drag_gesture_update_cb (GtkGestureDrag *gesture, gtk_gesture_get_device (GTK_GESTURE (gesture)), gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)), (int)start_x, (int)start_y, - gtk_get_current_event_time ()); + gdk_event_get_time (gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (gesture)))); gtk_event_controller_reset (GTK_EVENT_CONTROLLER (gesture)); gtk_event_controller_reset (GTK_EVENT_CONTROLLER (priv->click_gesture));