Subject: bug#16621: 24.3.50; Periodic timer + overlays = flickering near point

From: Eli Zaretskii <[email-masked]>
Date: Thu, 06 Feb 2014 07:56:42 +0200

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Wed, 05 Feb 2014 16:46:14 -0500
> 
> > So we only need to introduce some infrastructure that would allow us
> > to avoid redrawing the cursor on GUI frames, when the text surrounding
> > the cursor was not redrawn.
> 
> Right.  But if the `redisplay' bit wasn't set, then we shouldn't even
> need to look at any part of the window/buffer to decide that there's
> nothing to do.

There are 2 phases to redisplay.  The 'redisplay' flag is consulted in
the first phase, where we decide whether anything at all might need to
be redrawn, and if so, construct the "desired" glyph matrices for each
window that might need it.  The second phase, which is entered from
update_frame or update_window, compares the "desired" matrices with
the "current" ones, and actually redraws the changed portions of the
display, if any.  This second phase knows nothing about the flags you
mention, and doesn't need to, because it already refrains from
displaying the screen portions which didn't change.