emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Emacs-diffs] master 5c9304e: Disable some display optimizations whe


From: Stefan Monnier
Subject: Re: [Emacs-diffs] master 5c9304e: Disable some display optimizations when frames need redisplay
Date: Fri, 02 Oct 2015 16:55:00 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

>> >> So, what am I missing?
>> > The setting of windows_or_buffers_changed in fset_redisplay can now be
>> > removed.
>> Why would we want to do that?

> Because a global variable cannot possibly convey the information that
> only frames F1 and F2 need to be redisplayed.  Only frame-specific
> variables can do that.

I know.  But the way windows_or_buffers_changed works, currently it has
3 possible values:
- 0: only the selected-window needs to be redisplayed.
- 2: all frames/windows/buffers which have the `redisplay' bit set need
  to be redisplayed
- >2: all frames&windows need to be redisplayed.

So, the value 2 (aka REDISPLAY_SOME) already gives you the information
that "only frames F1 and F2 need to be redisplayed".

> IOW, when 2 out of 200 frames need to be redisplayed, there's no
> reason for us to attempt redisplaying all the 200.

100% agreement, and that's why I introduced those `redisplay' bits and
the corresponding REDISPLAY_SOME value for windows_or_buffers_changed.

And AFAIK it already has the effect that when we call fset_redisplay only
those frames get redisplayed.

Also rather than "don't set windows_or_buffers_changed in
fset_redisplay", it seems like it would be safer to try and eliminate
(one by one) the places where we check the value of
windows_or_buffers_changed instead of checking f->redisplay or something
like that.


        Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]