summaryrefslogtreecommitdiff
path: root/composite
diff options
context:
space:
mode:
Diffstat (limited to 'composite')
-rw-r--r--composite/compalloc.c13
-rw-r--r--composite/compext.c3
-rw-r--r--composite/compwindow.c4
3 files changed, 16 insertions, 4 deletions
diff --git a/composite/compalloc.c b/composite/compalloc.c
index 1deef685c..52847a716 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -432,7 +432,7 @@ compUnredirectOneSubwindow (WindowPtr pParent, WindowPtr pWin)
}
static PixmapPtr
-compNewPixmap (WindowPtr pWin, int x, int y, int w, int h)
+compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool backfill)
{
ScreenPtr pScreen = pWin->drawable.pScreen;
WindowPtr pParent = pWin->parent;
@@ -446,7 +446,11 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h)
pPixmap->screen_x = x;
pPixmap->screen_y = y;
-
+
+ if (!backfill)
+ return pPixmap;
+
+#if 0
pGC = GetScratchGC (pWin->drawable.depth, pScreen);
/*
@@ -467,6 +471,7 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h)
w, h, 0, 0);
FreeScratchGC (pGC);
}
+#endif
return pPixmap;
}
@@ -478,7 +483,7 @@ compAllocPixmap (WindowPtr pWin)
int y = pWin->drawable.y - bw;
int w = pWin->drawable.width + (bw << 1);
int h = pWin->drawable.height + (bw << 1);
- PixmapPtr pPixmap = compNewPixmap (pWin, x, y, w, h);
+ PixmapPtr pPixmap = compNewPixmap (pWin, x, y, w, h, TRUE);
CompWindowPtr cw = GetCompWindow (pWin);
if (!pPixmap)
@@ -548,7 +553,7 @@ compReallocPixmap (WindowPtr pWin, int draw_x, int draw_y,
pix_h = h + (bw << 1);
if (pix_w != pOld->drawable.width || pix_h != pOld->drawable.height)
{
- pNew = compNewPixmap (pWin, pix_x, pix_y, pix_w, pix_h);
+ pNew = compNewPixmap (pWin, pix_x, pix_y, pix_w, pix_h, FALSE);
if (!pNew)
return FALSE;
cw->pOldPixmap = pOld;
diff --git a/composite/compext.c b/composite/compext.c
index 8b1d45403..dde22b2d2 100644
--- a/composite/compext.c
+++ b/composite/compext.c
@@ -231,6 +231,9 @@ ProcCompositeNameWindowPixmap (ClientPtr client)
if (!cw)
return BadMatch;
+ if (!pWin->mapped)
+ return BadMatch;
+
pPixmap = (*pWin->drawable.pScreen->GetWindowPixmap) (pWin);
if (!pPixmap)
return BadMatch;
diff --git a/composite/compwindow.c b/composite/compwindow.c
index 2f5e83cda..a97c63ccf 100644
--- a/composite/compwindow.c
+++ b/composite/compwindow.c
@@ -548,7 +548,9 @@ compCopyWindow (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
REGION_TRANSLATE (prgnSrc, prgnSrc,
pWin->drawable.x - ptOldOrg.x,
pWin->drawable.y - ptOldOrg.y);
+#if 0
DamageDamageRegion (&pWin->drawable, prgnSrc);
+#endif
}
cs->CopyWindow = pScreen->CopyWindow;
pScreen->CopyWindow = compCopyWindow;
@@ -627,7 +629,9 @@ compSetRedirectBorderClip (WindowPtr pWin, RegionPtr pRegion)
/*
* Report that as damaged so it will be redrawn
*/
+#if 0
DamageDamageRegion (&pWin->drawable, &damage);
+#endif
REGION_UNINIT (pScreen, &damage);
/*
* Save the new border clip region