aboutsummaryrefslogtreecommitdiffstats
path: root/src/xdisp.c
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>1994-03-02 04:04:54 +0000
committerRichard M. Stallman <[email protected]>1994-03-02 04:04:54 +0000
commit8351baf2f9508981603199ba657f6d720dc2dc44 (patch)
tree7f9fa2293ce0418effd7ef557e62498fa5a6799e /src/xdisp.c
parentcf3540e492c6210eae1e343b2851f1413721c3b9 (diff)
(update_menu_bar): Change call to menu_bar_items.
(display_menu_bar): Use FRAME_MENU_BAR_LINES as vector.
Diffstat (limited to 'src/xdisp.c')
-rw-r--r--src/xdisp.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index d304d25378..7a3a84e221 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -969,7 +969,7 @@ update_menu_bar (window, just_this_one)
{
struct buffer *prev = current_buffer;
current_buffer = XBUFFER (w->buffer);
- FRAME_MENU_BAR_ITEMS (f) = menu_bar_items ();
+ FRAME_MENU_BAR_ITEMS (f) = menu_bar_items (FRAME_MENU_BAR_ITEMS (f));
current_buffer = prev;
#ifdef USE_X_TOOLKIT
set_frame_menubar (f);
@@ -2388,6 +2388,7 @@ display_menu_bar (w)
register FRAME_PTR f = XFRAME (WINDOW_FRAME (w));
int maxendcol = FRAME_WIDTH (f);
int hpos = 0;
+ int i;
#ifndef USE_X_TOOLKIT
if (FRAME_MENU_BAR_LINES (f) <= 0)
@@ -2395,14 +2396,15 @@ display_menu_bar (w)
get_display_line (f, vpos, 0);
- for (tail = FRAME_MENU_BAR_ITEMS (f); CONSP (tail); tail = XCONS (tail)->cdr)
+ items = FRAME_MENU_BAR_ITEMS (f);
+ for (i = 0; i < XVECTOR (items)->size; i += 3)
{
- Lisp_Object string;
-
- string = XCONS (XCONS (XCONS (tail)->car)->cdr)->car;
+ Lisp_Object pos, string;
+ string = XVECTOR (items)->contents[i + 1];
+ if (NILP (string))
+ break;
- /* Record in each item its hpos. */
- XFASTINT (XCONS (XCONS (XCONS (tail)->car)->cdr)->cdr) = hpos;
+ XFASTINT (XVECTOR (items)->contents[i + 2]) = hpos;
if (hpos < maxendcol)
hpos = display_string (XWINDOW (FRAME_ROOT_WINDOW (f)), vpos,