composite: Factor out backing store transition
No functional change. Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
6da3f5d04f
commit
b469fc72d2
|
@ -105,6 +105,20 @@ compInstallColormap(ColormapPtr pColormap)
|
||||||
pScreen->InstallColormap = compInstallColormap;
|
pScreen->InstallColormap = compInstallColormap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
compCheckBackingStore(WindowPtr pWin)
|
||||||
|
{
|
||||||
|
if (pWin->backingStore != NotUseful && !pWin->backStorage) {
|
||||||
|
compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic);
|
||||||
|
pWin->backStorage = TRUE;
|
||||||
|
}
|
||||||
|
else if (pWin->backingStore == NotUseful && pWin->backStorage) {
|
||||||
|
compUnredirectWindow(serverClient, pWin,
|
||||||
|
CompositeRedirectAutomatic);
|
||||||
|
pWin->backStorage = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Fake backing store via automatic redirection */
|
/* Fake backing store via automatic redirection */
|
||||||
static Bool
|
static Bool
|
||||||
compChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
|
compChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
|
||||||
|
@ -117,17 +131,8 @@ compChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
|
||||||
ret = pScreen->ChangeWindowAttributes(pWin, mask);
|
ret = pScreen->ChangeWindowAttributes(pWin, mask);
|
||||||
|
|
||||||
if (ret && (mask & CWBackingStore) &&
|
if (ret && (mask & CWBackingStore) &&
|
||||||
pScreen->backingStoreSupport != NotUseful) {
|
pScreen->backingStoreSupport != NotUseful)
|
||||||
if (pWin->backingStore != NotUseful && !pWin->backStorage) {
|
compCheckBackingStore(pWin);
|
||||||
compRedirectWindow(serverClient, pWin, CompositeRedirectAutomatic);
|
|
||||||
pWin->backStorage = TRUE;
|
|
||||||
}
|
|
||||||
else if (pWin->backingStore == NotUseful && pWin->backStorage) {
|
|
||||||
compUnredirectWindow(serverClient, pWin,
|
|
||||||
CompositeRedirectAutomatic);
|
|
||||||
pWin->backStorage = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pScreen->ChangeWindowAttributes = compChangeWindowAttributes;
|
pScreen->ChangeWindowAttributes = compChangeWindowAttributes;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue