[gtk/current-event-apis: 8/11] gtk: Port widgets away from gtk_get_current_ apis
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/current-event-apis: 8/11] gtk: Port widgets away from gtk_get_current_ apis
- Date: Sat, 11 Apr 2020 21:30:23 +0000 (UTC)
commit 0ee58e9ef41830e624333a52608a81682a79a545
Author: Matthias Clasen <mclasen redhat com>
Date: Sat Apr 11 14:58:15 2020 -0400
gtk: Port widgets away from gtk_get_current_ apis
Use the event controller equivalents where needed.
This commit covers the simple cases.
gtk/gtkbutton.c | 24 ++++++++++--------------
gtk/gtkcellrendereraccel.c | 4 +++-
gtk/gtknotebook.c | 5 ++---
gtk/gtkplacessidebar.c | 2 +-
gtk/gtkscrolledwindow.c | 31 ++++++++++++++-----------------
gtk/gtktextview.c | 15 +++------------
gtk/gtkwindow.c | 2 +-
7 files changed, 34 insertions(+), 49 deletions(-)
---
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;
- }
-
- gdk_event_unref (event);
+ return FALSE;
- if (gtk_widget_contains (GTK_WIDGET (button), x, y))
- return TRUE;
+ if (!gtk_widget_contains (widget, x, y))
+ return FALSE;
- 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));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]