From d6058fa4f68b68dff95c5ce826f9b9b498df3951 Mon Sep 17 00:00:00 2001
From: Jeremy Huddleston <jeremyhu@apple.com>
Date: Fri, 30 Apr 2010 13:08:25 -0700
Subject: [PATCH 5002/5005] Workaround the GC clipping problem in miPaintWindow
and add some debugging output.
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
mi/miexpose.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 90 insertions(+), 9 deletions(-)
diff --git a/mi/miexpose.c b/mi/miexpose.c
index f4c6e89..fe3bcb1 100644
@@ -408,7 +408,8 @@ void RootlessSetPixmapOfAncestors(WindowPtr pWin);
void RootlessStartDrawing(WindowPtr pWin);
void RootlessDamageRegion(WindowPtr pWin, RegionPtr prgn);
Bool IsFramedWindow(WindowPtr pWin);
miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
@@ -437,20 +438,32 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
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);
+ if (what == PW_BACKGROUND)
- 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);
- if (what == PW_BACKGROUND) {