[gtk/wip/matthiasc/shortcut: 43/102] widget: Add private accessor to event controllers



commit a508e44f9e996317dfa9be6318b3f2b349429880
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Thu Feb 6 14:21:10 2020 +0000

    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,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]