From: Eli Zaretskii Date: Mon, 2 Feb 2015 16:15:13 +0000 (+0200) Subject: Fix redrawing of mode lines when exposed (Bug#19721) X-Git-Tag: emacs-24.4.90~6 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e9a7e10;p=emacs.git Fix redrawing of mode lines when exposed (Bug#19721) src/dispnew.c (adjust_glyph_matrix): Set the update_mode_line flag of the window whose current glyph matrix was resized, which disables the mode-line row as side effect. src/xdisp.c (redisplay_window): Don't avoid redisplay of a window whose update_mode_line flag is set. --- diff --git a/src/ChangeLog b/src/ChangeLog index 829eb25f4d9..c8ea8b586ed 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2015-02-02 Eli Zaretskii + + * dispnew.c (adjust_glyph_matrix): Set the update_mode_line flag + of the window whose current glyph matrix was resized, which + disables the mode-line row as side effect. + + * xdisp.c (redisplay_window): Don't avoid redisplay of a window + whose update_mode_line flag is set. (Bug#19721) + 2015-01-30 Eli Zaretskii * dispextern.h (FACE_FOR_CHAR): Fix the commentary. diff --git a/src/dispnew.c b/src/dispnew.c index f73ea58b7f3..6517c9b5d19 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -570,6 +570,12 @@ adjust_glyph_matrix (struct window *w, struct glyph_matrix *matrix, int x, int y for (i = 0; i < matrix->nrows; ++i) matrix->rows[i].enabled_p = false; } + /* We've disabled the mode-line row, so force redrawing of + the mode line, if any, since otherwise it will remain + disabled in the current matrix, and expose events won't + redraw it. */ + if (WINDOW_WANTS_MODELINE_P (w)) + w->update_mode_line = 1; } else if (matrix == w->desired_matrix) { diff --git a/src/xdisp.c b/src/xdisp.c index b1125d324c2..2ebf06d5c34 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -15964,6 +15964,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) if (!just_this_one_p && REDISPLAY_SOME_P () && !w->redisplay + && !w->update_mode_line && !f->redisplay && !buffer->text->redisplay && BUF_PT (buffer) == w->last_point)