diff options
Diffstat (limited to 'src/libdraw')
-rw-r--r-- | src/libdraw/x11-draw.c | 13 | ||||
-rw-r--r-- | src/libdraw/x11-get.c | 3 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/libdraw/x11-draw.c b/src/libdraw/x11-draw.c index 33b92c87..ee91791d 100644 --- a/src/libdraw/x11-draw.c +++ b/src/libdraw/x11-draw.c @@ -17,14 +17,12 @@ void memimagedraw(Memimage *dst, Rectangle r, Memimage *src, Point sp, Memimage *mask, Point mp, int op) { + int drew; Memdrawparam *par; if((par = _memimagedrawsetup(dst, r, src, sp, mask, mp, op)) == nil) return; - if(xdraw(par)) - return; - /* only fetch dst data if we need it */ if((par->state&(Simplemask|Fullmask)) != (Simplemask|Fullmask)) xgetxdata(dst, par->r); @@ -36,6 +34,9 @@ memimagedraw(Memimage *dst, Rectangle r, Memimage *src, Point sp, /* now can run memimagedraw on the in-memory bits */ _memimagedraw(par); + if(xdraw(par)) + return; + /* put bits back on x server */ xputxdata(dst, par->r); } @@ -67,7 +68,7 @@ xdraw(Memdrawparam *par) m = Simplesrc|Simplemask|Fullmask; if((state&m) == m){ xfillcolor(dst, r, par->sdval); - xdirtyxdata(dst, r); + // xdirtyxdata(dst, r); return 1; } @@ -86,7 +87,7 @@ xdraw(Memdrawparam *par) XCopyArea(_x.display, xsrc->pixmap, xdst->pixmap, gc, sp.x, sp.y, Dx(r), Dy(r), dp.x, dp.y); - xdirtyxdata(dst, r); + // xdirtyxdata(dst, r); return 1; } @@ -131,7 +132,7 @@ xdraw(Memdrawparam *par) XSetTSOrigin(_x.display, gc, mp.x, mp.y); XFillRectangle(_x.display, xdst->pixmap, gc, dp.x, dp.y, Dx(r), Dy(r)); - xdirtyxdata(dst, r); + // xdirtyxdata(dst, r); return 1; } diff --git a/src/libdraw/x11-get.c b/src/libdraw/x11-get.c index feed46c6..a6d4b12e 100644 --- a/src/libdraw/x11-get.c +++ b/src/libdraw/x11-get.c @@ -30,6 +30,8 @@ xgetxdata(Memimage *m, Rectangle r) if(xm->dirty == 0) return xm->xi; + abort(); /* should never call this now */ + r = xm->dirtyr; if(Dx(r)==0 || Dy(r)==0) return xm->xi; @@ -102,6 +104,7 @@ xdirtyxdata(Memimage *m, Rectangle r) xm = m->X; if(xm == nil) return; + xm->dirty = 1; addrect(&xm->dirtyr, r); } |