From 47c0f58be5c3efbc54c36bc803453e87c67303f0 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Fri, 4 Jun 1993 07:14:47 +0000 Subject: (x_set_menu_bar_lines_1): Adjust just the uppermost child in a vertical split. Adjust the hight counter to the top. (x_set_menu_bar_lines): Don't change overall frame height. --- src/xfns.c | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/src/xfns.c b/src/xfns.c index d83c5958c22..a6a02a02298 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -929,17 +929,20 @@ x_set_menu_bar_lines_1 (window, n) Lisp_Object window; int n; { - for (; !NILP (window); window = XWINDOW (window)->next) - { - struct window *w = XWINDOW (window); + struct window *w = XWINDOW (window); - XFASTINT (w->top) += n; + XFASTINT (w->top) += n; + XFASTINT (w->height) -= n; - if (!NILP (w->vchild)) - x_set_menu_bar_lines_1 (w->vchild, n); + /* Handle just the top child in a vertical split. */ + if (!NILP (w->vchild)) + x_set_menu_bar_lines_1 (w->vchild, n); - if (!NILP (w->hchild)) - x_set_menu_bar_lines_1 (w->hchild, n); + /* Adjust all children in a horizontal split. */ + for (window = w->hchild; !NILP (window); window = w->next) + { + w = XWINDOW (window); + x_set_menu_bar_lines_1 (window, n); } } @@ -965,16 +968,6 @@ x_set_menu_bar_lines (f, value, oldval) FRAME_MENU_BAR_LINES (f) = nlines; x_set_menu_bar_lines_1 (f->root_window, nlines - olines); - /* Use FRAME_NEW_WIDTH, HEIGHT so as not to override a size change - made by the user but not fully reflected in the Emacs frame object. */ - x_set_window_size (f, - (FRAME_NEW_WIDTH (f) - ? FRAME_NEW_WIDTH (f) - : FRAME_WIDTH (f)), - ((FRAME_NEW_HEIGHT (f) - ? FRAME_NEW_HEIGHT (f) - : FRAME_HEIGHT (f)) - + nlines - olines)); } /* Change the name of frame F to ARG. If ARG is nil, set F's name to -- cgit v1.2.1