[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)
bug#19721: 25.0.50; Mode-line not redrawn with expose events,
Eli Zaretskii <=