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

From: martin rudalics <[email-masked]>
Date: Fri, 18 Dec 2020 09:39:35 +0100

>> Indeed, you're right.  This doesn't make any sense to me at all.  Why
 >> should a non-selected frame care about whether I scrolled a window on
 >> the selected frame?
 >
 > The non-selected frames shouldn't.  But the selected frame should,
 > because it needs to re-evaluate its frame title.  And we don't have
 > any means to tell the display engine to consider only the frame title
 > on a single frame.  We only have the means to tell it which windows on
 > which frames may need redrawing, but the frame's title doesn't belong
 > to any window.

In redisplay_window we set

   update_mode_line = (w->update_mode_line
		      || update_mode_lines

where w is the window we redisplay because it got scrolled.  Later down
we have

   if (update_mode_line
       && EQ (FRAME_SELECTED_WINDOW (f), window))
     {
       ...
       gui_consider_frame_title (w->frame);

so we do update the frame title after the frame's selected window got
scrolled.  What am I missing?

 >> Not in Fmake_frame_invisible AFAICT.
 >>
 >>   > although the comment seems to hint on the
 >>   > reason.
 >
 > What about that comment? doesn't it explain the reason?  AFAIU, that
 > reason is the need to re-evaluate the menu bar.

Because we just made a frame invisible?  The only thing we could grey
out on a menu in such a case is C-x 5 o and that's not what I see.  And
if it were there, we'd have to handle it in Fmake_frame_visible as well.

martin