ET++: Stepping through the redraw of a changed ImageItem
The WindowPort handles the invalidation by adding the rectangle to
its inval object, which is essentially a list of invalid rectangles.
This completes Stage 1 (the invalidation), and control now returns
to whoever originally called VObject::ForceRedraw(). Note that
at this point no drawing has occurred. The redrawing will occur
in Stage 2, which is initiated the next time through the main
event loop.
void WindowPort::InvalidateRect(const Rectangle &r, bool update)
{
//fprintf(stderr, "Inval(%d): %d %d %d %d\n", this, r.origin.x, r.origin.y,
// r.extent.x, r.extent.y);
if (state == eWsShown) {
if (inval == 0)
inval= new OldRegion;
inval->Merge(r);
}
if (update)
gWindowSystem->Update();
}
Back to the top of the invalidate/redraw description
Back to the top of the ET++ pages