[gtk/wip/matthiasc/shortcut-2] popovermenu: Show mnemonics on keynav



commit 184b4b7d21485f5fb55627edd3908fdd2bf0dd5c
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Mar 24 12:45:12 2020 -0400

    popovermenu: Show mnemonics on keynav
    
    This is the expected behavior for menus.

 gtk/gtkpopovermenu.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
---
diff --git a/gtk/gtkpopovermenu.c b/gtk/gtkpopovermenu.c
index 23375dd0c1..39c159ad45 100644
--- a/gtk/gtkpopovermenu.c
+++ b/gtk/gtkpopovermenu.c
@@ -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,


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