Commit 1df47e38 authored by YAMAMOTO Mitsuharu's avatar YAMAMOTO Mitsuharu

* xfns.c (x_set_menu_bar_lines) [!USE_X_TOOLKIT && !USE_GTK]:

Clear areas that will not be updated after change of menu bar lines.
Clear the menu bar window's current matrix when the window gets empty.
parent 0419b8d6
2010-01-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* xfns.c (x_set_menu_bar_lines) [!USE_X_TOOLKIT && !USE_GTK]:
Clear areas that will not be updated after change of menu bar lines.
Clear the menu bar window's current matrix when the window gets empty.
2010-01-09 Chong Yidong <cyd@stupidchicken.com>
* intervals.h, textprop.c (extend_property_ranges): Return value
......
......@@ -1317,7 +1317,43 @@ x_set_menu_bar_lines (f, value, oldval)
#else /* not USE_X_TOOLKIT && not USE_GTK */
FRAME_MENU_BAR_LINES (f) = nlines;
change_window_heights (f->root_window, nlines - olines);
#endif /* not USE_X_TOOLKIT */
/* If the menu bar height gets changed, the internal border below
the top margin has to be cleared. Also, if the menu bar gets
larger, the area for the added lines has to be cleared except for
the first menu bar line that is to be drawn later. */
if (nlines != olines)
{
int height = FRAME_INTERNAL_BORDER_WIDTH (f);
int width = FRAME_PIXEL_WIDTH (f);
int y;
/* height can be zero here. */
if (height > 0 && width > 0)
{
y = FRAME_TOP_MARGIN_HEIGHT (f);
BLOCK_INPUT;
x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
0, y, width, height, False);
UNBLOCK_INPUT;
}
if (nlines > 1 && nlines > olines)
{
y = (olines == 0 ? 1 : olines) * FRAME_LINE_HEIGHT (f);
height = nlines * FRAME_LINE_HEIGHT (f) - y;
BLOCK_INPUT;
x_clear_area (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
0, y, width, height, False);
UNBLOCK_INPUT;
}
if (nlines == 0 && WINDOWP (f->menu_bar_window))
clear_glyph_matrix (XWINDOW (f->menu_bar_window)->current_matrix);
}
#endif /* not USE_X_TOOLKIT && not USE_GTK */
adjust_glyphs (f);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment