diff options
Diffstat (limited to 'composite')
-rw-r--r-- | composite/compalloc.c | 13 | ||||
-rw-r--r-- | composite/compext.c | 3 | ||||
-rw-r--r-- | composite/compwindow.c | 4 |
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 |