diff --git a/xorg-x11-server-1.1.1-graphics-expose.patch b/xorg-x11-server-1.1.1-graphics-expose.patch new file mode 100644 index 0000000..449f41f --- /dev/null +++ b/xorg-x11-server-1.1.1-graphics-expose.patch @@ -0,0 +1,82 @@ +--- xorg-server-1.1.1/miext/cw/cw_ops.c.graphics-expose 2006-10-04 20:46:11.000000000 -0400 ++++ xorg-server-1.1.1/miext/cw/cw_ops.c 2006-10-04 20:52:32.000000000 -0400 +@@ -30,6 +30,7 @@ + #include "gcstruct.h" + #include "pixmapstr.h" + #include "cw.h" ++#include "mi.h" + + #define SETUP_BACKING_DST(_pDst, _pGC) \ + cwGCPtr pGCPrivate = getCwGC (_pGC); \ +@@ -184,56 +185,40 @@ + cwCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, int srcx, int srcy, + int w, int h, int dstx, int dsty) + { +- int odstx, odsty; +- RegionPtr exposed = NULL; + SETUP_BACKING_DST(pDst, pGC); + SETUP_BACKING_SRC(pSrc, pGC); + + PROLOGUE(pGC); + +- odstx = dstx; +- odsty = dsty; +- CW_OFFSET_XY_DST(dstx, dsty); +- CW_OFFSET_XY_SRC(srcx, srcy); +- +- exposed = (*pBackingGC->ops->CopyArea)(pBackingSrc, pBackingDst, +- pBackingGC, srcx, srcy, w, h, +- dstx, dsty); +- +- if (exposed != NULL) +- REGION_TRANSLATE(pDst->pScreen, exposed, odstx - dstx, odsty - dsty); ++ (*pBackingGC->ops->CopyArea)(pBackingSrc, pBackingDst, ++ pBackingGC, srcx, srcy, w, h, ++ dstx, dsty); + + EPILOGUE(pGC); + +- return exposed; ++ return miHandleExposures (pSrc, pDst, pBackingGC, ++ srcx, srcy, w, h, ++ dstx, dsty, 0); + } + + static RegionPtr + cwCopyPlane(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, int srcx, int srcy, + int w, int h, int dstx, int dsty, unsigned long plane) + { +- int odstx, odsty; +- RegionPtr exposed = NULL; + SETUP_BACKING_DST(pDst, pGC); + SETUP_BACKING_SRC(pSrc, pGC); + + PROLOGUE(pGC); + +- odstx = dstx; +- odsty = dsty; +- CW_OFFSET_XY_DST(dstx, dsty); +- CW_OFFSET_XY_SRC(srcx, srcy); +- +- exposed = (*pBackingGC->ops->CopyPlane)(pBackingSrc, pBackingDst, +- pBackingGC, srcx, srcy, w, h, +- dstx, dsty, plane); +- +- if (exposed != NULL) +- REGION_TRANSLATE(pDst->pScreen, exposed, odstx - dstx, odsty - dsty); +- +- EPILOGUE(pGC); +- +- return exposed; ++ (*pBackingGC->ops->CopyPlane)(pBackingSrc, pBackingDst, ++ pBackingGC, srcx, srcy, w, h, ++ dstx, dsty, plane); ++ ++ EPILOGUE(pGC); ++ ++ return miHandleExposures (pSrc, pDst, pBackingGC, ++ srcx, srcy, w, h, ++ dstx, dsty, plane); + } + + static void diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 0807e3b..3151576 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -3,7 +3,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.1.1 -Release: 44%{?dist} +Release: 45%{?dist} URL: http://www.x.org License: MIT/X11 Group: User Interface/X @@ -25,6 +25,7 @@ Patch8: xorg-x11-server-1.1.1-xvfb-composite-crash.patch Patch9: xorg-x11-server-1.1.1-pclose-confusion.patch Patch10: xorg-x11-server-1.1.1-vbe-filter-less.patch Patch11: xorg-x11-server-1.1.1-vt-activate-is-a-terrible-api.patch +Patch12: xorg-x11-server-1.1.1-graphics-expose.patch # OpenGL compositing manager feature/optimization patches. Patch100: xorg-x11-server-1.1.0-no-move-damage.patch @@ -348,6 +349,7 @@ drivers, input drivers, or other X modules should install this package. %patch9 -p1 -b .pclose %patch10 -p1 -b .vbe-filter %patch11 -p1 -b .vt-activate +%patch12 -p1 -b .graphics-expose %patch100 -p0 -b .no-move-damage %patch101 -p0 -b .dont-backfill-bg-none @@ -719,6 +721,11 @@ rm -rf $RPM_BUILD_ROOT # ------------------------------------------------------------------- %changelog +* Wed Oct 4 2006 Soren Sandmann - 1.1.1-45.fc6 +- xorg-x11-server-1.1.1-graphics-expose.patch: call + miHandleExposures() in CopyArea/CopyPlane explicitly in cw to + generate GraphicsExposes correctly. (#209336). + * Mon Oct 2 2006 Kristian Høgsberg - 1.1.1-44.fc6 - xorg-x11-server-1.1.1-offscreen-pixmaps.patch: Take the server lock before calling back into XAA to evict pixmaps (#204810).