From: Matthias Clasen Date: Tue, 24 Mar 2020 04:00:43 +0000 (-0400) Subject: popovermenu: Make mnemonics work without Alt X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~19^2~32^2~12 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2c28a0713d076cd28f99bcf70da0043fa5a95b90;p=gtk4.git popovermenu: Make mnemonics work without Alt This is expected menu behavior. --- diff --git a/gtk/gtkpopovermenu.c b/gtk/gtkpopovermenu.c index edfbdb078c..23375dd0c1 100644 --- a/gtk/gtkpopovermenu.c +++ b/gtk/gtkpopovermenu.c @@ -34,6 +34,8 @@ #include "gtktypebuiltins.h" #include "gtkmodelbuttonprivate.h" #include "gtkpopovermenubar.h" +#include "gtkshortcutmanager.h" +#include "gtkshortcutcontroller.h" /** @@ -199,6 +201,7 @@ gtk_popover_menu_init (GtkPopoverMenu *popover) { GtkWidget *stack; GtkEventController *controller; + GList *controllers, *l; stack = gtk_stack_new (); gtk_stack_set_vhomogeneous (GTK_STACK (stack), FALSE); @@ -217,6 +220,16 @@ gtk_popover_menu_init (GtkPopoverMenu *popover) controller = gtk_event_controller_motion_new (); 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) + { + controller = l->data; + 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); } static void