diff options
author | Adam Jackson <ajax@nwnk.net> | 2006-02-13 20:29:49 +0000 |
---|---|---|
committer | Adam Jackson <ajax@nwnk.net> | 2006-02-13 20:29:49 +0000 |
commit | 20d4eee8cf2cb1e1376cda9fc30cea515d8f0bfc (patch) | |
tree | 0345496c3a42ab4438b0d42950a98a71300cd0a1 /mi/mivaltree.c | |
parent | 3da5bb16edaec7356a0777b9d30307706c2f8ab5 (diff) |
Merge of the relatively stable bits of redhat-xdc2006 branch, which shouldaiglx-pre-ext-tfp-conversion
now be considered dead. Two optimizations have not been merged yet:
- Suppressing damage reporting on XMoveWindow
- Suppressing region computation for the NonEmpty report level
In both cases the implementation of the optimization in the xdc branch
violated the Damage spec in nasty ways.
Diffstat (limited to 'mi/mivaltree.c')
-rw-r--r-- | mi/mivaltree.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/mi/mivaltree.c b/mi/mivaltree.c index 6a7d6030c..7923a07c6 100644 --- a/mi/mivaltree.c +++ b/mi/mivaltree.c @@ -1,5 +1,5 @@ /* $Xorg: mivaltree.c,v 1.4 2001/02/09 02:05:22 xorgcvs Exp $ */ -/* $XdotOrg: xc/programs/Xserver/mi/mivaltree.c,v 1.4 2005/04/20 12:25:45 daniels Exp $ */ +/* $XdotOrg: xserver/xorg/mi/mivaltree.c,v 1.6.10.1 2006/02/06 23:18:55 ajax Exp $ */ /* * mivaltree.c -- * Functions for recalculating window clip lists. Main function @@ -313,7 +313,11 @@ miComputeClips ( { if (pChild->viewable) { - if (pChild->visibility != VisibilityFullyObscured) + if (pChild->visibility != VisibilityFullyObscured +#ifdef COMPOSITE + || pChild->redirectDraw +#endif + ) { REGION_TRANSLATE( pScreen, &pChild->borderClip, dx, dy); @@ -491,9 +495,15 @@ miComputeClips ( * * To figure the exposure of the window we subtract the old clip from the * new, just as for the border. + * + * For composite this optimization is incorrect since + * the window should not in fact be exposed just because it + * was FullyObscured before. */ - - if (oldVis == VisibilityFullyObscured || + if ( +#ifndef COMPOSITE + oldVis == VisibilityFullyObscured || +#endif oldVis == VisibilityNotViewable) { REGION_COPY( pScreen, &pParent->valdata->after.exposed, universe); |