From 1e91f65ffd08de397e709c2e2bac05e6019ccedb Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 6 Feb 2020 14:21:10 +0000 Subject: [PATCH] widget: Add private accessor to event controllers --- gtk/gtkwidget.c | 18 ++++++++++++++++++ gtk/gtkwidgetprivate.h | 3 +++ 2 files changed, 21 insertions(+) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index d85f3109ed..af5431bd1f 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -12043,6 +12043,24 @@ gtk_widget_reset_controllers (GtkWidget *widget) } } +GList * +gtk_widget_list_controllers (GtkWidget *widget, + GtkPropagationPhase phase) +{ + GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget); + GList *res = NULL, *l; + + for (l = priv->event_controllers; l; l = l->next) + { + GtkEventController *controller = l->data; + + if (gtk_event_controller_get_propagation_phase (controller) == phase) + res = g_list_prepend (res, controller); + } + + return g_list_reverse (res); +} + static inline void gtk_widget_maybe_add_debug_render_nodes (GtkWidget *widget, GtkSnapshot *snapshot) diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h index 9b5bed504a..41c78b98c3 100644 --- a/gtk/gtkwidgetprivate.h +++ b/gtk/gtkwidgetprivate.h @@ -284,6 +284,9 @@ gboolean gtk_widget_has_size_request (GtkWidget *widget); void gtk_widget_reset_controllers (GtkWidget *widget); +GList * gtk_widget_list_controllers (GtkWidget *widget, + GtkPropagationPhase phase); + gboolean gtk_widget_query_tooltip (GtkWidget *widget, gint x, gint y,