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

From: Eli Zaretskii <[email-masked]>
Date: Thu, 30 Oct 2014 05:39:54 +0200

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Wed, 29 Oct 2014 18:16:00 -0400
> 
> >> >> To only defer fontification when we know "for sure" that the user is
> >> >> waiting for further processing.
> >> > Sorry, you lost me.  When input is pending, what further processing is
> >> > the user waiting for?
> >> The user is waiting for Emacs to process the input that he's already sent.
> > Using an idle timer does that, right?
> 
> Huh?  No, the user is waiting because Emacs hasn't replied yet.
> Idle timers are for when the user hasn't given any command, so Emacs is
> waiting, rather than the user.

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?

> >> The 1st redisplay also only redrew the portion that was modified, which
> >> is pretty close in many cases to the portion that later gets fontified.
> > I was thinking about scrolling with C-v, in which case the first
> > redisplay redraws almost the entire window.
> 
> 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.