bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#19721: 25.0.50; Mode-line not redrawn with expose events


From: Eli Zaretskii
Subject: bug#19721: 25.0.50; Mode-line not redrawn with expose events
Date: Sun, 01 Feb 2015 17:33:10 +0200

> Date: Sun, 01 Feb 2015 14:40:40 +0900
> From: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
> Cc: 19721@debbugs.gnu.org
> 
> > How about the following patch instead of the previous one?
> 
> Now mode-lines get updated with C-x o again, but the original issue
> still remains and I could reproduce it with the original procedure on
> Cent OS 5.11.
> 
> If I apply both changes, mode-lines are redrawn when exposed, but some
> of them are not updated with C-x o.

How about the patch below?  (Once again, it's wrt the current emacs-24
branch.)

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 @@ struct redisplay_history
              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 @@ enum
   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]