Subject: bug#77039: 31.0.50; Flickering on macOS

From: Aaron Jensen <[email-masked]>
Date: Sat, 22 Mar 2025 17:38:01 -0400

On Sat, Mar 22, 2025 at 1:40 PM, Gerd Möllmann <[email-masked]>
wrote:

> Eli Zaretskii <[email-masked]> writes:
>
> From: Gerd Möllmann <[email-masked]> Cc: [email-masked],
> [email-masked], [email-masked] Date: Sat, 22 Mar 2025 21:20:09
> +0100
>
> Eli Zaretskii <[email-masked]> writes:
>
> I'd also look for something doing things to mode-line-format first, maybe.
> But I also have no real idea what that is.
>
> Given that the glyph rows in question have their mode_line_p flag reset,
> is that still a possibility?
>
> Hm, probably not.
>
> But could this make a difference?
>
> dispnew.c:
> 5261 static int
> 5262 scrolling_window (struct window *w, int tab_line_p)
>
> Why would scrolling_window be called at all if we never call update_window
> for buffers that are not shown in any window?
>
> AFAIU, the scenario is that the sub-process is inserting text into a
> buffer that isn't shown in any window on display. In this case, redisplay
> is supposed to conclude that no window needs to be redrawn, and if so,
> update_window will not be called for any window. Right?
>
> Right, and I agree. I'm trying to find a way to explain the difference
> that Aaron sees with and without his config. Otherwise I have no idea how
> to proceed with this.
>

It's global-display-line-numbers-mode.

Repro from emacs -Q:

(defun foo ()
(Interactive)
(global-display-line-numbers-mode)
(term "/usr/bin/yes")
(switch-to-buffer "*scratch*"))

Aaron