[gtk/ebassi/activate-signal: 2/6] Add private method to check activatability




commit e5e18ddffb6b13b018f55d0385c2a5fa08ccbcc5
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Fri Dec 4 23:01:57 2020 +0000

    Add private method to check activatability
    
    We should have an actual method, instead of checking the
    WidgetClass.activate_signal directly.

 gtk/gtkwidget.c        | 11 ++++++++++-
 gtk/gtkwidgetprivate.h |  2 ++
 2 files changed, 12 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 1ae404c425..e638b377aa 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -4296,9 +4296,18 @@ gtk_widget_mnemonic_activate (GtkWidget *widget,
   return handled;
 }
 
-static gboolean
+/*< private >
+ * gtk_widget_can_activate:
+ * @self: a #GtkWidget
+ *
+ * Checks whether a #GtkWidget can be activated using
+ * gtk_widget_activate().
+ */
+gboolean
 gtk_widget_can_activate (GtkWidget *self)
 {
+  g_return_val_if_fail (GTK_IS_WIDGET (self), FALSE);
+
   GtkWidgetClass *widget_class = GTK_WIDGET_GET_CLASS (self);
 
   if (widget_class->activate_signal != 0)
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index a79ee938da..00424ff446 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -356,6 +356,8 @@ guint             gtk_widget_add_surface_transform_changed_callback (GtkWidget
 void              gtk_widget_remove_surface_transform_changed_callback (GtkWidget *widget,
                                                                         guint      id);
 
+gboolean          gtk_widget_can_activate       (GtkWidget *widget);
+
 /* focus vfuncs for non-focusable containers with focusable children */
 gboolean gtk_widget_grab_focus_child (GtkWidget        *widget);
 gboolean gtk_widget_focus_child      (GtkWidget        *widget,


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