Subject: Re: bug#18856: 24.4; *grep* output buffer not getting fontified when jit-lock-defer-time is used

From: Stefan Monnier <[email-masked]>
Date: Thu, 30 Oct 2014 00:10:19 -0400

> You said "_defer_ fontification when the user is waiting for Emacs".
> When user is waiting for Emacs, idle timers won't run, and therefore
> fontifications done in a function that runs off an idle timer will not
> be performed.  How does this not fit what you describe?

Your question was:

   Indeed, so what's the point of doing that?

where AFAIK "that" referred to "defer fontification when input is pending".

And I explained that the point of deferring fontification only when
input is pending (as opposed to doing it all the time, as in the
current jit-lock-defer-time system) is that we defer less often, more
specifically we only defer "when we know for sure that the user is
waiting for further processing".

>> Same difference: the 1st redisplay redraws almost the whole window, and
>> the second as well because almost none of the text had been
>> fontified earlier.
> The amount of redrawing depends on what portions of the visible text
> are fontified.

That's why I said "because almost none of the text had been
fontified earlier".  It's not always true, but the end result is the
same: the double redisplay takes extra time.  Does it take exactly twice
the time?  Maybe not exactly, but I think that a factor of 2 is a good
enough approximation.

        Stefan