Module Name: xsrc
Committed By: mrg
Date: Wed Jul 22 06:10:52 UTC 2009
Modified Files:
xsrc/external/mit/xorg-server/dist/exa: exa_accel.c
Log Message:
apply the patch from http://bugs.freedesktop.org/attachment.cgi?id=27568.
it fixes various issues picked up by newer pixman.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.3 -r1.2 \
xsrc/external/mit/xorg-server/dist/exa/exa_accel.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: xsrc/external/mit/xorg-server/dist/exa/exa_accel.c
diff -u xsrc/external/mit/xorg-server/dist/exa/exa_accel.c:1.1.1.3 xsrc/external/mit/xorg-server/dist/exa/exa_accel.c:1.2
--- xsrc/external/mit/xorg-server/dist/exa/exa_accel.c:1.1.1.3 Thu Jul 9 07:04:33 2009
+++ xsrc/external/mit/xorg-server/dist/exa/exa_accel.c Wed Jul 22 06:10:52 2009
@@ -415,6 +415,7 @@
if (rects) {
int i;
+ int ordering;
for (i = 0; i < nbox; i++) {
rects[i].x = pbox[i].x1 + dx + src_off_x;
@@ -423,7 +424,16 @@
rects[i].height = pbox[i].y2 - pbox[i].y1;
}
- srcregion = RECTS_TO_REGION(pScreen, nbox, rects, CT_YXBANDED);
+ /* This must match the miRegionCopy() logic for reversing rect order */
+ if (nbox == 1 || (dx > 0 && dy > 0) ||
+ (pDstDrawable != pSrcDrawable &&
+ (pDstDrawable->type != DRAWABLE_WINDOW ||
+ pSrcDrawable->type != DRAWABLE_WINDOW)))
+ ordering = CT_YXBANDED;
+ else
+ ordering = CT_UNSORTED;
+
+ srcregion = RECTS_TO_REGION(pScreen, nbox, rects, ordering);
xfree(rects);
if (!pGC || !exaGCReadsDestination(pDstDrawable, pGC->planemask,