summary refs log tree commit diff
path: root/pkgs/servers/x11/xorg/darwin/0003-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/x11/xorg/darwin/0003-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch')
-rw-r--r--pkgs/servers/x11/xorg/darwin/0003-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch165
1 files changed, 0 insertions, 165 deletions
diff --git a/pkgs/servers/x11/xorg/darwin/0003-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch b/pkgs/servers/x11/xorg/darwin/0003-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch
deleted file mode 100644
index 395853f940f..00000000000
--- a/pkgs/servers/x11/xorg/darwin/0003-Workaround-the-GC-clipping-problem-in-miPaintWindow-.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-From fa5c83fe9129c9cd9cde1420a32112ca2f17566c Mon Sep 17 00:00:00 2001
-From: Jeremy Huddleston <jeremyhu@apple.com>
-Date: Fri, 30 Apr 2010 13:08:25 -0700
-Subject: [PATCH 3/6] Workaround the GC clipping problem in miPaintWindow and
- add some debugging output.
-
-Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
----
- mi/miexpose.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 94 insertions(+), 10 deletions(-)
-
-diff --git a/mi/miexpose.c b/mi/miexpose.c
-index fc4dbc0..5e31b83 100644
---- a/mi/miexpose.c
-+++ b/mi/miexpose.c
-@@ -408,7 +408,8 @@ void RootlessSetPixmapOfAncestors(WindowPtr pWin);
- void RootlessStartDrawing(WindowPtr pWin);
- void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn);
- Bool IsFramedWindow(WindowPtr pWin);
--#endif
-+#include "../fb/fb.h"
-+#endif 
- 
- void
- miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
-@@ -437,23 +438,37 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
-     Bool solid = TRUE;
-     DrawablePtr drawable = &pWin->drawable;
- 
-+#ifdef XQUARTZ_CLIP_DEBUG
-+    ErrorF("START %d BS %d (pR = %ld)\n", what, pWin->backgroundState, ParentRelative);
-+    ErrorF("      Rgn: %d %d %d %d\n", prgn->extents.x1, prgn->extents.y1,
-+	                               prgn->extents.x2 - prgn->extents.x1,
-+	                               prgn->extents.y2 - prgn->extents.y1);
-+    ErrorF("      Win: %d %d (%d %d) %d %d\n", pWin->origin.x, pWin->origin.y,
-+	                                       pWin->winSize.extents.x1, pWin->winSize.extents.y1,
-+	                                       pWin->winSize.extents.x2 - pWin->winSize.extents.x1,
-+					       pWin->winSize.extents.y2 - pWin->winSize.extents.y1);
-+    ErrorF("     Draw: %d %d %d %d\n", pWin->drawable.x, pWin->drawable.y,
-+				       pWin->drawable.width, pWin->drawable.height);
-+#endif
-+
- #ifdef ROOTLESS
-     if (!drawable || drawable->type == UNDRAWABLE_WINDOW)
-         return;
-+#endif
-+    
-+    if (what == PW_BACKGROUND)
-+    {
-+#ifdef ROOTLESS
-+        if(IsFramedWindow(pWin)) {
-+            RootlessStartDrawing(pWin);
-+            RootlessDamageRegion(pWin, prgn);
- 
--    if (IsFramedWindow(pWin)) {
--        RootlessStartDrawing(pWin);
--        RootlessDamageRegion(pWin, prgn);
--
--        if (pWin->backgroundState == ParentRelative) {
--            if ((what == PW_BACKGROUND) ||
--                (what == PW_BORDER && !pWin->borderIsPixel))
-+            if(pWin->backgroundState == ParentRelative) {
-                 RootlessSetPixmapOfAncestors(pWin);
-+            }
-         }
--    }
- #endif
- 
--    if (what == PW_BACKGROUND) {
-         while (pWin->backgroundState == ParentRelative)
-             pWin = pWin->parent;
- 
-@@ -478,6 +493,18 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
-     else {
-         PixmapPtr pixmap;
- 
-+#ifdef ROOTLESS
-+	if(IsFramedWindow(pWin)) {
-+	    RootlessStartDrawing(pWin);
-+	    RootlessDamageRegion(pWin, prgn);
-+	    
-+	    if(!pWin->borderIsPixel &&
-+		pWin->backgroundState == ParentRelative) {
-+		RootlessSetPixmapOfAncestors(pWin);
-+	    }
-+	}
-+#endif
-+
-         tile_x_off = drawable->x;
-         tile_y_off = drawable->y;
- 
-@@ -486,6 +513,12 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
-             return;
-         pixmap = (*pScreen->GetWindowPixmap) ((WindowPtr) drawable);
-         drawable = &pixmap->drawable;
-+
-+#ifdef XQUARTZ_CLIP_DEBUG
-+        ErrorF("     Draw: %d %d %d %d\n",
-+               drawable->x, drawable->y, drawable->width, drawable->height);    
-+#endif
-+	
- #ifdef COMPOSITE
-         draw_x_off = pixmap->screen_x;
-         draw_y_off = pixmap->screen_y;
-@@ -548,6 +581,57 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
-     ChangeGC(NullClient, pGC, gcmask, gcval);
-     ValidateGC(drawable, pGC);
- 
-+#ifdef XQUARTZ_CLIP_DEBUG
-+    ErrorF("       GC: %d %d %d %d\n",
-+	   pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1,
-+	   pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1,
-+	   pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1);
-+#endif
-+    
-+#ifdef XQUARTZ
-+    /* Looks like our clipping isn't set right for some reason:
-+     * http://xquartz.macosforge.org/trac/ticket/290
-+     */
-+    if(what == PW_BORDER) {
-+
-+#if 0
-+	if(solid) {
-+#if 1
-+	    fbFillRegionSolid(&pWin->drawable,
-+			      prgn,
-+			      0,
-+			      fbReplicatePixel(fill.pixel,
-+					       pWin->drawable.bitsPerPixel));
-+#else
-+	    fbFillRegionSolid(drawable,
-+			      prgn,
-+			      0,
-+			      fbReplicatePixel(fill.pixel,
-+					       drawable->bitsPerPixel));
-+#endif
-+	    return;
-+	}
-+#endif
-+    
-+	pGC->pCompositeClip->extents.x1 += prgn->extents.x1;
-+	pGC->pCompositeClip->extents.y1 += prgn->extents.y1;
-+	pGC->pCompositeClip->extents.x2 += prgn->extents.x1;
-+	pGC->pCompositeClip->extents.y2 += prgn->extents.y1;
-+	
-+	if(pGC->pCompositeClip->extents.x2 > drawable->pScreen->width)
-+	    pGC->pCompositeClip->extents.x2 = drawable->pScreen->width;
-+	if(pGC->pCompositeClip->extents.y2 > drawable->pScreen->height)
-+	    pGC->pCompositeClip->extents.y2 = drawable->pScreen->height;
-+    }
-+#endif
-+
-+#ifdef XQUARTZ_CLIP_DEBUG
-+    ErrorF("       GC: %d %d %d %d\n",
-+	   pGC->pCompositeClip->extents.x1, pGC->pCompositeClip->extents.y1,
-+	   pGC->pCompositeClip->extents.x2 - pGC->pCompositeClip->extents.x1,
-+	   pGC->pCompositeClip->extents.y2 - pGC->pCompositeClip->extents.y1);    
-+#endif
-+
-     numRects = RegionNumRects(prgn);
-     pbox = RegionRects(prgn);
-     for (i = numRects; --i >= 0; pbox++, prect++) {
--- 
-2.3.2 (Apple Git-55)
-