summaryrefslogtreecommitdiff
path: root/gtk/gtkpopovermenu.c
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2020-03-28 20:37:29 +0100
committerTimm Bäder <mail@baedert.org>2020-03-29 15:32:54 +0200
commit785b33f169db0c3788f466037115ed3027b145b2 (patch)
tree2efa08b0e71804b89541cb099e7846607f837f23 /gtk/gtkpopovermenu.c
parentaf749dc1dc83810e6bbf0658dd608c1c1b75cb9e (diff)
downloadgtk+-785b33f169db0c3788f466037115ed3027b145b2.tar.gz
widget: Return an array from list_controllers
Minimize the GList usage throughout the code base.
Diffstat (limited to 'gtk/gtkpopovermenu.c')
-rw-r--r--gtk/gtkpopovermenu.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/gtk/gtkpopovermenu.c b/gtk/gtkpopovermenu.c
index 39c159ad45..12424e4bb2 100644
--- a/gtk/gtkpopovermenu.c
+++ b/gtk/gtkpopovermenu.c
@@ -201,7 +201,8 @@ gtk_popover_menu_init (GtkPopoverMenu *popover)
{
GtkWidget *stack;
GtkEventController *controller;
- GList *controllers, *l;
+ GtkEventController **controllers;
+ guint n_controllers, i;
stack = gtk_stack_new ();
gtk_stack_set_vhomogeneous (GTK_STACK (stack), FALSE);
@@ -221,15 +222,15 @@ gtk_popover_menu_init (GtkPopoverMenu *popover)
g_signal_connect (controller, "leave", G_CALLBACK (leave_cb), popover);
gtk_widget_add_controller (GTK_WIDGET (popover), controller);
- controllers = gtk_widget_list_controllers (GTK_WIDGET (popover), GTK_PHASE_CAPTURE);
- for (l = controllers; l; l = l->next)
+ controllers = gtk_widget_list_controllers (GTK_WIDGET (popover), GTK_PHASE_CAPTURE, &n_controllers);
+ for (i = 0; i < n_controllers; i ++)
{
- controller = l->data;
+ controller = controllers[i];
if (GTK_IS_SHORTCUT_CONTROLLER (controller) &&
strcmp (gtk_event_controller_get_name (controller), "gtk-shortcut-manager-capture") == 0)
gtk_shortcut_controller_set_mnemonics_modifiers (GTK_SHORTCUT_CONTROLLER (controller), 0);
}
- g_list_free (controllers);
+ g_free (controllers);
gtk_popover_disable_auto_mnemonics (GTK_POPOVER (popover));
}