From 0ca358c52ed9641fdd16eed8db20475b619433dd Mon Sep 17 00:00:00 2001 From: Manuel Giraud Date: Fri, 25 Nov 2022 15:50:41 +0100 Subject: [PATCH] ; * src/xdisp.c (display_menu_bar): Update menu_bar_window height. --- src/xdisp.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/xdisp.c b/src/xdisp.c index 5dcf21dc4c..14003ed5f6 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -26272,11 +26272,11 @@ display_menu_bar (struct window *w) it.first_visible_x = 0; it.last_visible_x = FRAME_PIXEL_WIDTH (f); #elif defined (HAVE_X_WINDOWS) /* X without toolkit. */ + struct window *menu_w; if (FRAME_WINDOW_P (f)) { /* Menu bar lines are displayed in the desired matrix of the dummy window menu_bar_window. */ - struct window *menu_w; menu_w = XWINDOW (f->menu_bar_window); init_iterator (&it, menu_w, -1, -1, menu_w->desired_matrix->rows, MENU_FACE_ID); @@ -26335,6 +26335,22 @@ display_menu_bar (struct window *w) /* Compute the total height of the lines. */ compute_line_metrics (&it); + +#if defined (HAVE_X_WINDOWS) && !defined (USE_X_TOOLKIT) && !defined (USE_GTK) + if (FRAME_WINDOW_P (it.f)) + { + struct glyph_row *row = it.glyph_row; + int delta_height = ((row->y + row->height) + - WINDOW_BOX_HEIGHT_NO_MODE_LINE (menu_w)); + if (delta_height != 0) + { + FRAME_MENU_BAR_HEIGHT (it.f) += delta_height; + WINDOW_PIXEL_HEIGHT (w) -= delta_height; + WINDOW_TOP_PIXEL_EDGE (w) += delta_height; + it.f->fonts_changed = true; + } + } +#endif } /* Deep copy of a glyph row, including the glyphs. */ -- 2.38.1