]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkmenu.c
Deprecate flag macros for toplevel, state, no window and composite child
[~andy/gtk] / gtk / gtkmenu.c
index e8813c9f0db35348687c6a60e92e0120e6c612e2..55bf5d9f97e8067e53f8de47574d5cbc69e14176 100644 (file)
@@ -1616,6 +1616,18 @@ gtk_menu_popup (GtkMenu              *menu,
   if (xgrab_shell == widget)
     popup_grab_on_window (widget->window, activate_time, grab_keyboard); /* Should always succeed */
   gtk_grab_add (GTK_WIDGET (menu));
+
+  if (parent_menu_shell)
+    {
+      gboolean keyboard_mode;
+
+      keyboard_mode = _gtk_menu_shell_get_keyboard_mode (GTK_MENU_SHELL (parent_menu_shell));
+      _gtk_menu_shell_set_keyboard_mode (menu_shell, keyboard_mode);
+    }
+  else if (menu_shell->button == 0) /* a keynav-activated context menu */
+    _gtk_menu_shell_set_keyboard_mode (menu_shell, TRUE);
+
+  _gtk_menu_shell_update_mnemonics (menu_shell);
 }
 
 void
@@ -1974,7 +1986,7 @@ gtk_menu_get_toplevel (GtkWidget *menu)
   else if (GTK_IS_WIDGET (attach))
     {
       toplevel = gtk_widget_get_toplevel (attach);
-      if (GTK_WIDGET_TOPLEVEL (toplevel)) 
+      if (gtk_widget_is_toplevel (toplevel)) 
        return toplevel;
     }