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

From: Stefan Monnier <[email-masked]>
Date: Fri, 26 Jul 2019 12:23:26 -0400

>> > Stefan, I'm looking and looking, and don't understand why that change
>> > made sense.  The process-status indication in the mode line is shown
>> > in all windows, so status_notify is exactly the place where we should
>> > trigger update of all mode lines.
>> 
>> Hmm... AFAIK the "process status" normally only indicates the status of
>> the process running in the buffer to which this mode line belongs.
>> Which is why I made the change to only bset_update_mode_line rather than
>> set the global update_mode_lines.
>
> 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.

>> 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 (I disable this in my own config
because I don't like it).

        Stefan