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

From: Eli Zaretskii <[email-masked]>
Date: Sat, 31 Jan 2015 13:44:38 +0200

> Date: Sat, 31 Jan 2015 20:37:09 +0900
> From: YAMAMOTO Mitsuharu <[email-masked]>
> Cc: 	[email-masked]
> 
> With this patch, the mode-lines are redrawn when they are exposed.
> But I also observe that a mode-line part is not updated with the last
> C-x o (see the 3rd mode-line in the screenshot) with the previously
> mentioned procedure on the Mac port.  Strangely, if I try C-x o three
> times further, then the second mode-line part is also not updated.

Right.  Which means it is not enough to avoid disabling the mode line,
we must actually force its redrawing afterwards.

How about the following patch instead of the previous one?

diff --git a/src/dispnew.c b/src/dispnew.c
index f73ea58..de9791e 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -564,6 +564,8 @@ struct redisplay_history
 
 	      while (i < matrix->nrows)
 		matrix->rows[i++].enabled_p = false;
+	      if (WINDOW_WANTS_MODELINE_P (w))
+		w->update_mode_line = 1;
 	    }
 	  else
 	    {