diff options
author | Ville Syrjälä <ville.syrjala@nokia.com> | 2011-04-13 21:46:20 +0300 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@nokia.com> | 2011-05-04 19:01:01 +0300 |
commit | eac37f32b85b631d94ee3ba11fa65b9d2cb72c38 (patch) | |
tree | 9f2273c7b9e2108cbaa287b3794d7c21bd7dcdcf /composite | |
parent | f2001b0f6dffa0a8f05def4a86ea37c4c91db724 (diff) |
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>
Diffstat (limited to 'composite')
-rw-r--r-- | composite/compalloc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/composite/compalloc.c b/composite/compalloc.c index 37d2245d4..5c27631e1 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; |