invalidate

Arguments:
object &key (interior t) frame children box (erase t)

Invalidates object so that redisplay-window will be called automatically to
redraw the invalidated area. redisplay-window will be called only when there
are no more queued events, which reduces flashing by redrawing an
object only once even if it has been invalidated multiple times while
handling a sequence of events. See also update-window.

The first three keyword arguments specify what is invalidated: the
interior (client area), the frame (or border), and/or the child
windows if any. interior defaults to true, while
frame and children default
to nil.

box specifies what part of the interior to
redraw, when interior is true. If
box is nil, as it is by
default, then the entire visible-box of the window is redrawn; otherwise
box should be a box in the window's stream
coordinates that indicates the rectangular area to redraw. This box
will be passed to the redisplay-window method, which can avoid drawing
anything that does not intersect this box, for efficiency. The
clipping-box of the window
will also be set to this box at this time, which reduces flashing even
when the redisplay-window
method does attempt to draw outside the box.

If erase is true, it ensures that all content is
erased before being repainted, though in fact this is typically done
by a window's redisplay-window
method anyway.

When a hotspot is passed,
the region-box of its hotspot-region is invalidated in the
hotspot's parent window, to redraw the smallest rectangular area that
fully contains the hotspot.

When an outline-item is
passed, that individual item is redrawn instead of redrawing the
entire outline.

This function should be used instead of most invalidate-*
functions (but not invalidate-section).