]> code.delx.au - gnu-emacs/blobdiff - src/xmenu.c
(Fplist_get): Rename arg `val' to `plist' as in doc.
[gnu-emacs] / src / xmenu.c
index 8fd87175a1442dfc36534a7304641efe095b7810..63188cb4c5c19b2ec93d0f3a7b6c44325c524718 100644 (file)
@@ -673,7 +673,7 @@ single_keymap_panes (keymap, pane_name, prefix, notreal)
     }
 }
 \f
-/* Push all the panes and items of a menu decsribed by the
+/* Push all the panes and items of a menu described by the
    alist-of-alists MENU.
    This handles old-fashioned calls to x-popup-menu.  */
 
@@ -1051,7 +1051,8 @@ on the left of the dialog box and all following items on the right.\n\
 #ifdef USE_X_TOOLKIT
 
 /* Loop in Xt until the menu pulldown or dialog popup has been
-   popped down (deactivated).
+   popped down (deactivated).  This is used for x-popup-menu
+   and x-popup-dialog; it is not used for the menu bar any more.
 
    NOTE: All calls to popup_get_selection should be protected
    with BLOCK_INPUT, UNBLOCK_INPUT wrappers.  */
@@ -1654,7 +1655,7 @@ set_frame_menubar (f, first_time, deep_p)
        if (menu_items_used == i
            || (previous_items[i] != XVECTOR (menu_items)->contents[i]))
          break;
-      if (i == menu_items_used && i == previous_menu_items_used)
+      if (i == menu_items_used && i == previous_menu_items_used && i != 0)
        {
          free_menubar_widget_value_tree (first_wv);
          menu_items = Qnil;
@@ -1704,6 +1705,11 @@ set_frame_menubar (f, first_time, deep_p)
            first_wv->contents = wv;
          prev_wv = wv;
        }
+
+      /* Forget what we thought we knew about what is in the
+        detailed contents of the menu bar menus.
+        Changing the top level always destroys the contents.  */
+      f->menu_bar_items_used = 0;
     }
 
   /* Create or update the menu bar widget.  */
@@ -1760,7 +1766,7 @@ set_frame_menubar (f, first_time, deep_p)
   UNBLOCK_INPUT;
 }
 
-/* Called from Fx_create_frame to create the inital menubar of a frame
+/* Called from Fx_create_frame to create the initial menubar of a frame
    before it is mapped, so that the window is mapped with the menubar already
    there instead of us tacking it on later and thrashing the window after it
    is visible.  */