GNU bug report logs - #42406
Mouse-wheel scrolling can be flickering

Previous Next

Package: emacs;

Reported by: Konrad Podczeck <konrad.podczeck <at> univie.ac.at>

Date: Fri, 17 Jul 2020 15:37:02 UTC

Severity: normal

Full log


Message #216 received at 42406 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: alan <at> idiocy.org, konrad.podczeck <at> univie.ac.at, 42406 <at> debbugs.gnu.org
Subject: Re: bug#42406: Mouse-wheel scrolling can be flickering
Date: Thu, 17 Dec 2020 18:34:42 +0100
>> 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.

It would affect it in the sense that not necessarily all frames are
considered.  But you sketched that already in your TODO entry.

>> 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.

In the case at hand Emacs relies on redisplaying all frames when
scrolling a window that is not on the selected frame in order to
correctly reflect the change in the scrolled window's mode line.

> 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.

IIUC windows_or_buffers_changed affects frames as well.  For example, I
have no idea why making a frame (in)visible should redisplay all other
frames while moving a frame on the screen apparently does not.

martin




This bug report was last modified 4 years and 25 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.