sandmann 4ff4f04
--- xorg-server-1.1.1/miext/cw/cw_ops.c.graphics-expose	2006-07-05 20:23:57.000000000 -0400
sandmann a608749
+++ xorg-server-1.1.1/miext/cw/cw_ops.c	2006-10-04 23:54:03.000000000 -0400
sandmann 4fa31ed
@@ -30,6 +30,7 @@
sandmann 4fa31ed
 #include "gcstruct.h"
sandmann 4fa31ed
 #include "pixmapstr.h"
sandmann 4fa31ed
 #include "cw.h"
sandmann 4fa31ed
+#include "mi.h"
sandmann 4fa31ed
 
sandmann 4fa31ed
 #define SETUP_BACKING_DST(_pDst, _pGC) \
sandmann 4fa31ed
     cwGCPtr pGCPrivate = getCwGC (_pGC); \
sandmann 4fa31ed
@@ -185,7 +186,7 @@
sandmann f4d5d10
 	   int w, int h, int dstx, int dsty)
sandmann f4d5d10
 {
sandmann 88ed5cc
     int		odstx, odsty;
sandmann f4d5d10
-    RegionPtr	exposed = NULL;
sandmann 88ed5cc
+    int		osrcx, osrcy;
sandmann f4d5d10
     SETUP_BACKING_DST(pDst, pGC);
sandmann f4d5d10
     SETUP_BACKING_SRC(pSrc, pGC);
sandmann f4d5d10
 
sandmann 4fa31ed
@@ -193,19 +194,20 @@
sandmann f4d5d10
 
sandmann 88ed5cc
     odstx = dstx;
sandmann 88ed5cc
     odsty = dsty;
sandmann 88ed5cc
+    osrcx = srcx;
sandmann 88ed5cc
+    osrcy = srcy;
sandmann 4ff4f04
     CW_OFFSET_XY_DST(dstx, dsty);
sandmann 4ff4f04
     CW_OFFSET_XY_SRC(srcx, srcy);
sandmann 88ed5cc
 
sandmann f4d5d10
-    exposed = (*pBackingGC->ops->CopyArea)(pBackingSrc, pBackingDst,
sandmann f4d5d10
-					   pBackingGC, srcx, srcy, w, h,
sandmann f4d5d10
-					   dstx, dsty);
sandmann f4d5d10
-
sandmann f4d5d10
-    if (exposed != NULL)
sandmann f4d5d10
-	REGION_TRANSLATE(pDst->pScreen, exposed, odstx - dstx, odsty - dsty);
sandmann 88ed5cc
-
sandmann f4d5d10
+    (*pBackingGC->ops->CopyArea)(pBackingSrc, pBackingDst,
sandmann f4d5d10
+				 pBackingGC, srcx, srcy, w, h,
sandmann f4d5d10
+				 dstx, dsty);
sandmann 88ed5cc
+    
sandmann f4d5d10
     EPILOGUE(pGC);
sandmann f4d5d10
 
sandmann f4d5d10
-    return exposed;
sandmann a608749
+    return miHandleExposures(pSrc, pDst, pGC,
sandmann a608749
+			     osrcx, osrcy, w, h,
sandmann a608749
+			     odstx, odsty, 0);
sandmann f4d5d10
 }
sandmann f4d5d10
 
sandmann f4d5d10
 static RegionPtr
sandmann 4fa31ed
@@ -213,7 +215,7 @@
sandmann f4d5d10
 	    int w, int h, int dstx, int dsty, unsigned long plane)
sandmann f4d5d10
 {
sandmann 88ed5cc
     int		odstx, odsty;
sandmann f4d5d10
-    RegionPtr	exposed = NULL;
sandmann 88ed5cc
+    int		osrcx, osrcy;
sandmann f4d5d10
     SETUP_BACKING_DST(pDst, pGC);
sandmann f4d5d10
     SETUP_BACKING_SRC(pSrc, pGC);
sandmann f4d5d10
 
sandmann 4fa31ed
@@ -221,19 +223,20 @@
sandmann f4d5d10
 
sandmann 88ed5cc
     odstx = dstx;
sandmann 88ed5cc
     odsty = dsty;
sandmann 88ed5cc
+    osrcx = srcx;
sandmann 88ed5cc
+    osrcy = srcy;
sandmann 4ff4f04
     CW_OFFSET_XY_DST(dstx, dsty);
sandmann 4ff4f04
     CW_OFFSET_XY_SRC(srcx, srcy);
sandmann 88ed5cc
 
sandmann f4d5d10
-    exposed = (*pBackingGC->ops->CopyPlane)(pBackingSrc, pBackingDst,
sandmann f4d5d10
-					    pBackingGC, srcx, srcy, w, h,
sandmann f4d5d10
-					    dstx, dsty, plane);
sandmann f4d5d10
-
sandmann f4d5d10
-    if (exposed != NULL)
sandmann f4d5d10
-	REGION_TRANSLATE(pDst->pScreen, exposed, odstx - dstx, odsty - dsty);
sandmann f4d5d10
+    (*pBackingGC->ops->CopyPlane)(pBackingSrc, pBackingDst,
sandmann f4d5d10
+				  pBackingGC, srcx, srcy, w, h,
sandmann f4d5d10
+				  dstx, dsty, plane);
sandmann 88ed5cc
 
sandmann 88ed5cc
     EPILOGUE(pGC);
sandmann 88ed5cc
 
sandmann 88ed5cc
-    return exposed;
sandmann a608749
+    return miHandleExposures(pSrc, pDst, pGC,
sandmann a608749
+			     osrcx, osrcy, w, h,
sandmann a608749
+			     odstx, odsty, plane);
sandmann f4d5d10
 }
sandmann f4d5d10
 
sandmann f4d5d10
 static void