aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/composite
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/composite')
-rw-r--r--xorg-server/composite/compinit.c7
-rw-r--r--xorg-server/composite/compoverlay.c5
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);