diff src/xmenu.c @ 6481:55236c5bca7c

(update_frame_menubar): Function renamed from update_one_frame_psheets. (initialize_frame_menubar): New function. (set_frame_menubar): Call menu_bar_items when items is NIL.
author Fred Pierresteguy <F.Pierresteguy@frcl.bull.fr>
date Wed, 23 Mar 1994 18:23:32 +0000
parents 463b12ba8260
children 95661fd7a320
line wrap: on
line diff
--- a/src/xmenu.c	Wed Mar 23 18:22:13 1994 +0000
+++ b/src/xmenu.c	Wed Mar 23 18:23:32 1994 +0000
@@ -1093,7 +1093,7 @@
 extern void EmacsFrameSetCharSize ();
 
 static void
-update_one_frame_psheets (f)
+update_frame_menubar (f)
      FRAME_PTR f;
 {
   struct x_display *x = f->display.x;
@@ -1162,7 +1162,8 @@
   wv->enabled = 1;
   save_wv = first_wv = wv;
 
-  items = FRAME_MENU_BAR_ITEMS (f);
+  if (NILP (items = FRAME_MENU_BAR_ITEMS (f)))
+    items = FRAME_MENU_BAR_ITEMS (f) = menu_bar_items (FRAME_MENU_BAR_ITEMS (f));
 
   for (i = 0; i < XVECTOR (items)->size; i += 3)
     {
@@ -1202,7 +1203,7 @@
   
   free_menubar_widget_value_tree (first_wv);
 
-  update_one_frame_psheets (f);
+  update_frame_menubar (f);
 
   UNBLOCK_INPUT;
 }
@@ -1224,6 +1225,16 @@
       UNBLOCK_INPUT;
     }
 }
+/* Called from Fx_create_frame to create the inital 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.  */
+void
+initialize_frame_menubar (f)
+     FRAME_PTR f;
+{
+  set_frame_menubar (f);
+}
 
 /* Nonzero if position X, Y relative to inside of frame F
    is in some other menu bar item.  */