diff options
| author | Eli Zaretskii | 2015-02-02 18:15:13 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2015-02-02 18:15:13 +0200 |
| commit | e9a7e10b1818b484af0a36631d2ee6034ac752dc (patch) | |
| tree | a33cadda6aa44694e6e94bedb6b42cab6ea17c33 | |
| parent | 50f3811883c7082b3c2a5a10bcfe77a3adfcb6ff (diff) | |
| download | emacs-e9a7e10b1818b484af0a36631d2ee6034ac752dc.tar.gz emacs-e9a7e10b1818b484af0a36631d2ee6034ac752dc.zip | |
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.
| -rw-r--r-- | src/ChangeLog | 9 | ||||
| -rw-r--r-- | src/dispnew.c | 6 | ||||
| -rw-r--r-- | src/xdisp.c | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 829eb25f4d9..c8ea8b586ed 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2015-02-02 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * dispnew.c (adjust_glyph_matrix): Set the update_mode_line flag | ||
| 4 | of the window whose current glyph matrix was resized, which | ||
| 5 | disables the mode-line row as side effect. | ||
| 6 | |||
| 7 | * xdisp.c (redisplay_window): Don't avoid redisplay of a window | ||
| 8 | whose update_mode_line flag is set. (Bug#19721) | ||
| 9 | |||
| 1 | 2015-01-30 Eli Zaretskii <eliz@gnu.org> | 10 | 2015-01-30 Eli Zaretskii <eliz@gnu.org> |
| 2 | 11 | ||
| 3 | * dispextern.h (FACE_FOR_CHAR): Fix the commentary. | 12 | * 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 | |||
| 570 | for (i = 0; i < matrix->nrows; ++i) | 570 | for (i = 0; i < matrix->nrows; ++i) |
| 571 | matrix->rows[i].enabled_p = false; | 571 | matrix->rows[i].enabled_p = false; |
| 572 | } | 572 | } |
| 573 | /* We've disabled the mode-line row, so force redrawing of | ||
| 574 | the mode line, if any, since otherwise it will remain | ||
| 575 | disabled in the current matrix, and expose events won't | ||
| 576 | redraw it. */ | ||
| 577 | if (WINDOW_WANTS_MODELINE_P (w)) | ||
| 578 | w->update_mode_line = 1; | ||
| 573 | } | 579 | } |
| 574 | else if (matrix == w->desired_matrix) | 580 | else if (matrix == w->desired_matrix) |
| 575 | { | 581 | { |
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) | |||
| 15964 | if (!just_this_one_p | 15964 | if (!just_this_one_p |
| 15965 | && REDISPLAY_SOME_P () | 15965 | && REDISPLAY_SOME_P () |
| 15966 | && !w->redisplay | 15966 | && !w->redisplay |
| 15967 | && !w->update_mode_line | ||
| 15967 | && !f->redisplay | 15968 | && !f->redisplay |
| 15968 | && !buffer->text->redisplay | 15969 | && !buffer->text->redisplay |
| 15969 | && BUF_PT (buffer) == w->last_point) | 15970 | && BUF_PT (buffer) == w->last_point) |