emacs-pretest-bug
[Top][All Lists]
Advanced

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

Re: redisplay-dont-pause is not mentioned in the Emacs manual


From: Kim F. Storm
Subject: Re: redisplay-dont-pause is not mentioned in the Emacs manual
Date: Wed, 07 Jun 2006 10:32:24 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

Richard Stallman <address@hidden> writes:

>       Normal redisplay is restarted whenever it is interrupted by user
>       input.  For example, pressing and holding the down-arrow key will be
>       "randomly jumpy" -- depending on the speed of the computer vs. the key
>       "repeat rate" of the keyboard.
>
> Emacs defers redisplay to input to make sure it does not 
> fall behind.
>
>       The only way to get "more fluent" display updates is by setting
>       redisplay-dont-pause.
>
> I can't imagine what you mean by "more fluent" display updates, but if
> you observe that the keyboard key repeat mechanism is causing
> redisplay to be pre-empted, it means that keys are coming faster than
> Emacs can redisplay them.  If Emacs does not pre-empt redisplay in
> such a case, it WILL fall behind.  And when you take your finger off
> the key, you will have to wait some length of time for Emacs to finish
> executing and redisplaying the keys that were buffered.
>
> The value of redisplay pre-emption is precisely for cases like this.

It doesn't have to...

The idea is:

(A) Don't _start_ redisplay if there is pending input,
    i.e. process all available input before starting redisplay.

(B) Don't _interrupt_ redisplay once it has started.


Except for special cases, (A) is how emacs works already.

And (B) is what you get by setting `redisplay-dont-pause'.


AFAICS, with this method Emacs can just as easily keep up with user
input without redisplay pre-emption.  It just processes input
in bigger "lumps".   

Of course, with either method, if input comes quicker than emacs can
process it, we never get a redisplay.  

That is why I suggested some time back to have a user option to define
the max. interval between redisplay -- to give the user visible feedback
even when emacs is busy.  This is unrelated to redisplay-dont-pause!


So setting redisplay-dont-pause doesn't harm in most cases ...
i.e. unless you have a very slow computer *) where even a single
full redisplay does indeed take a noticeable amount of time.

Unfortunetely, redisplay-dont-pause _also_ controls whether
sit-for does an immediate redisplay ... which we may not want
to happen in general. But it probably doesn't matter...


*) ... or is using a real VDU over a 9600 bps line -- oh, I remember
   those happy days :-)


-- 
Kim F. Storm <address@hidden> http://www.cua.dk





reply via email to

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