composite: Recompute clipping when changing between manual and automatic redirection
Call compMarkWindows() when changing between manual and automatic redirection modes. Otherwise the window clipping won't be recomputed correctly. Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com>
This commit is contained in:
parent
f2001b0f6d
commit
eac37f32b8
|
@ -226,6 +226,10 @@ compRedirectWindow (ClientPtr pClient, WindowPtr pWin, int update)
|
||||||
}
|
}
|
||||||
cw->update = CompositeRedirectManual;
|
cw->update = CompositeRedirectManual;
|
||||||
}
|
}
|
||||||
|
else if (cw->update == CompositeRedirectAutomatic && !cw->damageRegistered) {
|
||||||
|
if (!anyMarked)
|
||||||
|
anyMarked = compMarkWindows (pWin, &pLayerWin);
|
||||||
|
}
|
||||||
|
|
||||||
if (!compCheckRedirect (pWin))
|
if (!compCheckRedirect (pWin))
|
||||||
{
|
{
|
||||||
|
@ -314,6 +318,8 @@ compFreeClientWindow (WindowPtr pWin, XID id)
|
||||||
else if (cw->update == CompositeRedirectAutomatic &&
|
else if (cw->update == CompositeRedirectAutomatic &&
|
||||||
!cw->damageRegistered && pWin->redirectDraw != RedirectDrawNone)
|
!cw->damageRegistered && pWin->redirectDraw != RedirectDrawNone)
|
||||||
{
|
{
|
||||||
|
anyMarked = compMarkWindows (pWin, &pLayerWin);
|
||||||
|
|
||||||
DamageRegister (&pWin->drawable, cw->damage);
|
DamageRegister (&pWin->drawable, cw->damage);
|
||||||
cw->damageRegistered = TRUE;
|
cw->damageRegistered = TRUE;
|
||||||
pWin->redirectDraw = RedirectDrawAutomatic;
|
pWin->redirectDraw = RedirectDrawAutomatic;
|
||||||
|
|
Loading…
Reference in New Issue