From: Ville Syrjälä <[email protected]>

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ä <[email protected]>
---
v3: new patch

 composite/compalloc.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/composite/compalloc.c b/composite/compalloc.c
index e6f70e4..705e1dc 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -226,6 +226,10 @@ compRedirectWindow (ClientPtr pClient, WindowPtr pWin, int 
update)
        }
        cw->update = CompositeRedirectManual;
     }
+    else if (cw->update == CompositeRedirectAutomatic && 
!cw->damageRegistered) {
+       if (!anyMarked)
+           anyMarked = compMarkWindows (pWin, &pLayerWin);
+    }
 
     if (!compCheckRedirect (pWin))
     {
@@ -314,6 +318,8 @@ compFreeClientWindow (WindowPtr pWin, XID id)
     else if (cw->update == CompositeRedirectAutomatic &&
             !cw->damageRegistered && pWin->redirectDraw != RedirectDrawNone)
     {
+       anyMarked = compMarkWindows (pWin, &pLayerWin);
+
        DamageRegister (&pWin->drawable, cw->damage);
        cw->damageRegistered = TRUE;
        pWin->redirectDraw = RedirectDrawAutomatic;
-- 
1.7.3.4

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to