Subject: bug#36803: 27.0.50; Update mode-line of every window when compilation ends

From: Eli Zaretskii <[email-masked]>
Date: Fri, 26 Jul 2019 21:16:55 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Fri, 26 Jul 2019 12:23:26 -0400
> 
> > So you are saying that there's a redisplay bug, whereby some windows
> > that display a buffer don't have their mode line updated in the recipe
> > of this bug report?
> 
> In the recipe of this bug, we have a process in the compilation buffer
> and the status of this process is reflected in the mode line of
> *all* windows (via the compilation-in-progress variable).
> 
> The "process status" I'm referring to above is another kind of "process
> status" in the mode-line: that of `mode-line-process` which is usually
> buffer-local and only reflects the status of the process running in that
> same buffer.

But the recipe uses "C-x 2" several times, so all the windows display
the same buffer.  And yet one of them has its mode line not updated
after the process exist.

> >> Additionally, in this particular case, the need to update all mode-lines
> >> doesn't come from the fact that a sentinel was run, but from the fact
> >> that compilation-in-progress was modified, which can (and does) also
> >> happen when no sentinel is run.  So I think TRT is something like the
> >> patch below.
> > force-mode-line-update with a non-nil argument affects all the
> > windows, even those which don't show the process status.  So why are
> > you saying it's TRT in this case?
> 
> Because the status of the compilation process *is* by default reflected
> in the mode line of all windows

Then we should update all mode lines when the status changes, and we
should not require any Lisp to force that update.