Subject: Re: bug#42406: Mouse-wheel scrolling can be flickering

From: Eli Zaretskii <[email-masked]>
Date: Thu, 17 Dec 2020 18:54:11 +0200

> Cc: [email-masked], [email-masked], [email-masked]
> From: martin rudalics <[email-masked]>
> Date: Thu, 17 Dec 2020 16:13:53 +0100
> 
>  > That won't work without also changing redisplay_internal to consider
>  > such a list.  It currently knows about just 2 alternatives: either
>  > consider only the selected window on the selected frame, or all
>  > windows on all frames -- and only the second option considers
>  > non-window aspects (such as the frame title or menu bar) of the
>  > selected frame.
> 
> The part mostly affected would be
> 
>    if (consider_all_windows_p)
>      {
>        FOR_EACH_FRAME (tail, frame)
> 	XFRAME (frame)->updated_p = false;

You mean, it will not affect the following FOR_EACH_FRAME loop?  If
so, I don't think I follow.

> because windows_or_buffers_changed should probably become either a list
> too or redisplay would simply scan all windows and act when it finds a
> window whose w->update_mode_line or w->changed flag is true.

I don't think windows are the problem: Emacs knows very well which
window(s) actually need(s) to be redisplayed and redrawn.  The problem
is with frame decorations that don't belong to any window: there we
rely on the OS and the WM to refrain from redrawing stuff unless
really needed.