summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2012-05-04 16:34:23 +0100
committerDave Airlie <airlied@redhat.com>2012-05-04 16:34:23 +0100
commitbe9d0917e4de35f008e310fd31e57e25bb5bbc03 (patch)
treefcb5bf9c40bf2a40756639e43d273ceea379b208
parente27ae938ffdc2ccbdd22f84f4c08205a3694eef0 (diff)
imped: fix composite clip issue
-rw-r--r--drv/imped_gc.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drv/imped_gc.c b/drv/imped_gc.c
index c653877d0..797dcdd8b 100644
--- a/drv/imped_gc.c
+++ b/drv/imped_gc.c
@@ -86,8 +86,15 @@ impedValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable)
pDrvGC->tile.pixmap->refcnt++;
}
}
-
+ if (!pDrvGC->pCompositeClip) {
+ pDrvGC->freeCompClip = TRUE;
+ pDrvGC->pCompositeClip = RegionCreate(NULL, 0);
+ }
pDrvGC->funcs->ValidateGC(pDrvGC, changes, &pPixmap->gpu[i]->drawable);
+ /* overwrite the composite clip with the toplevel one -
+ probably could just avoid clipping down in fbgc.c
+ fixes rendering with twm + xlogo in top corner */
+ RegionCopy(pDrvGC->pCompositeClip, pGC->pCompositeClip);
}
#ifdef COMPOSITE
if (pDrawable->type == DRAWABLE_WINDOW) {