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