* 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.
This commit is contained in:
parent
0419b8d6eb
commit
1df47e3844
2 changed files with 43 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
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
|
||||
|
|
38
src/xfns.c
38
src/xfns.c
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue