diff options
Diffstat (limited to 'xorg-server/composite/compinit.c')
-rw-r--r-- | xorg-server/composite/compinit.c | 7 |
1 files changed, 5 insertions, 2 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; |