popovermenu: Show mnemonics on keynav
authorMatthias Clasen <mclasen@redhat.com>
Tue, 24 Mar 2020 16:45:12 +0000 (12:45 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 26 Mar 2020 03:14:45 +0000 (23:14 -0400)
This is the expected behavior for menus.

gtk/gtkpopovermenu.c

index 23375dd0c1363efa08f8e005081310b3824cd7c3..39c159ad45711391eec9c371be5a51d81c5a4224 100644 (file)
@@ -230,6 +230,8 @@ gtk_popover_menu_init (GtkPopoverMenu *popover)
         gtk_shortcut_controller_set_mnemonics_modifiers (GTK_SHORTCUT_CONTROLLER (controller), 0);
     }
   g_list_free (controllers);
+
+  gtk_popover_disable_auto_mnemonics (GTK_POPOVER (popover));
 }
 
 static void
@@ -415,6 +417,15 @@ gtk_popover_menu_show (GtkWidget *widget)
   GTK_WIDGET_CLASS (gtk_popover_menu_parent_class)->show (widget);
 }
 
+static void
+gtk_popover_menu_move_focus (GtkWidget         *widget,
+                             GtkDirectionType  direction)
+{
+  gtk_popover_set_mnemonics_visible (GTK_POPOVER (widget), TRUE);
+
+  GTK_WIDGET_CLASS (gtk_popover_menu_parent_class)->move_focus (widget, direction);
+}
+
 static void
 gtk_popover_menu_class_init (GtkPopoverMenuClass *klass)
 {
@@ -429,6 +440,7 @@ gtk_popover_menu_class_init (GtkPopoverMenuClass *klass)
   widget_class->unmap = gtk_popover_menu_unmap;
   widget_class->focus = gtk_popover_menu_focus;
   widget_class->show = gtk_popover_menu_show;
+  widget_class->move_focus = gtk_popover_menu_move_focus;
 
   g_object_class_install_property (object_class,
                                    PROP_VISIBLE_SUBMENU,