emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-24 e9a7e10: Fix redrawing of mode lines when exposed


From: Eli Zaretskii
Subject: [Emacs-diffs] emacs-24 e9a7e10: Fix redrawing of mode lines when exposed (Bug#19721)
Date: Mon, 02 Feb 2015 16:16:23 +0000

branch: emacs-24
commit e9a7e10b1818b484af0a36631d2ee6034ac752dc
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    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.
---
 src/ChangeLog |    9 +++++++++
 src/dispnew.c |    6 ++++++
 src/xdisp.c   |    1 +
 3 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/src/ChangeLog b/src/ChangeLog
index 829eb25..c8ea8b5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,12 @@
+2015-02-02  Eli Zaretskii  <address@hidden>
+
+       * 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  <address@hidden>
 
        * dispextern.h (FACE_FOR_CHAR): Fix the commentary.
diff --git a/src/dispnew.c b/src/dispnew.c
index f73ea58..6517c9b 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 b1125d3..2ebf06d 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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]