8 * Hide puts that portion of screenr now on the screen into the window's save area.
9 * Expose puts that portion of screenr now in the save area onto the screen.
11 * Hide and Expose both require that the layer structures in the screen
12 * match the geometry they are being asked to update, that is, they update the
13 * save area (hide) or screen (expose) based on what those structures tell them.
14 * This means they must be called at the correct time during window shuffles.
19 lhideop(Memimage *src, Rectangle screenr, Rectangle clipr, void *etc, int insave)
27 if(src != l->save){ /* do nothing if src is already in save area */
28 r = rectsubpt(screenr, l->delta);
29 memdraw(l->save, r, src, screenr.min, nil, screenr.min, S);
34 memlhide(Memimage *i, Rectangle screenr)
36 if(i->layer->save == nil)
38 if(rectclip(&screenr, i->layer->screen->image->r) == 0)
40 _memlayerop(lhideop, i, screenr, screenr, i->layer);
45 lexposeop(Memimage *dst, Rectangle screenr, Rectangle clipr, void *etc, int insave)
51 if(insave) /* if dst is save area, don't bother */
54 r = rectsubpt(screenr, l->delta);
56 memdraw(dst, screenr, l->save, r.min, nil, r.min, S);
58 l->refreshfn(dst, r, l->refreshptr);
62 memlexpose(Memimage *i, Rectangle screenr)
64 if(rectclip(&screenr, i->layer->screen->image->r) == 0)
66 _memlayerop(lexposeop, i, screenr, screenr, i->layer);