diff options
Diffstat (limited to 'xorg-server/composite')
-rw-r--r-- | xorg-server/composite/compinit.c | 7 | ||||
-rw-r--r-- | xorg-server/composite/compoverlay.c | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/xorg-server/composite/compinit.c b/xorg-server/composite/compinit.c index bc1130e78..3c910914e 100644 --- a/xorg-server/composite/compinit.c +++ b/xorg-server/composite/compinit.c @@ -117,11 +117,11 @@ compChangeWindowAttributes(WindowPtr pWin, unsigned long mask) if (ret && (mask & CWBackingStore) && pScreen->backingStoreSupport != NotUseful) { - if (pWin->backingStore != NotUseful) { + if (pWin->backingStore != NotUseful && !pWin->backStorage) { compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic); pWin->backStorage = (pointer) (intptr_t) 1; } - else { + else if (pWin->backingStore == NotUseful && pWin->backStorage) { compUnredirectWindow(serverClient, pWin, CompositeRedirectAutomatic); pWin->backStorage = NULL; @@ -355,6 +355,9 @@ compScreenInit(ScreenPtr pScreen) return FALSE; } + if (!disableBackingStore) + pScreen->backingStoreSupport = WhenMapped; + cs->PositionWindow = pScreen->PositionWindow; pScreen->PositionWindow = compPositionWindow; diff --git a/xorg-server/composite/compoverlay.c b/xorg-server/composite/compoverlay.c index d3cfaf06f..bf5434ccb 100644 --- a/xorg-server/composite/compoverlay.c +++ b/xorg-server/composite/compoverlay.c @@ -133,16 +133,19 @@ compCreateOverlayWindow(ScreenPtr pScreen) int result; int w = pScreen->width; int h = pScreen->height; + int x = 0, y = 0; #ifdef PANORAMIX if (!noPanoramiXExtension) { + x = -pScreen->x; + y = -pScreen->y; w = PanoramiXPixWidth; h = PanoramiXPixHeight; } #endif pWin = cs->pOverlayWin = - CreateWindow(cs->overlayWid, pRoot, 0, 0, w, h, 0, + CreateWindow(cs->overlayWid, pRoot, x, y, w, h, 0, InputOutput, CWBackPixmap | CWOverrideRedirect, &attrs[0], pRoot->drawable.depth, serverClient, pScreen->rootVisual, &result); |