summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-03-15 18:24:52 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-03-22 11:14:07 -0400
commitc5ef926b7d43627ec310e22c988b01767e38cb87 (patch)
treef3ec4c70c4eeb3ed6e83ed3e3216f0f2acccdd76
parente121ef1b96684a75633f0fe77dd35bbf95bb79dc (diff)
downloadgtk+-c5ef926b7d43627ec310e22c988b01767e38cb87.tar.gz
Only create a class shortcut controller if we have shortcuts
No point in creating objects that just hold empty lists.
-rw-r--r--gtk/gtkwidget.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 7826d1a534..41e0815286 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -2467,9 +2467,12 @@ gtk_widget_init (GTypeInstance *instance, gpointer g_class)
if (layout_manager_type != G_TYPE_INVALID)
gtk_widget_set_layout_manager (widget, g_object_new (layout_manager_type, NULL));
- controller = gtk_shortcut_controller_new_for_model (G_LIST_MODEL (GTK_WIDGET_CLASS (g_class)->priv->shortcuts));
- gtk_event_controller_set_name (controller, "gtk-widget-class-shortcuts");
- gtk_widget_add_controller (widget, controller);
+ if (g_list_model_get_n_items (G_LIST_MODEL (GTK_WIDGET_CLASS (g_class)->priv->shortcuts)) > 0)
+ {
+ controller = gtk_shortcut_controller_new_for_model (G_LIST_MODEL (GTK_WIDGET_CLASS (g_class)->priv->shortcuts));
+ gtk_event_controller_set_name (controller, "gtk-widget-class-shortcuts");
+ gtk_widget_add_controller (widget, controller);
+ }
}
/**