summaryrefslogtreecommitdiff
path: root/mi/mivaltree.c
diff options
context:
space:
mode:
authorAdam Jackson <ajax@nwnk.net>2006-02-13 20:29:49 +0000
committerAdam Jackson <ajax@nwnk.net>2006-02-13 20:29:49 +0000
commit20d4eee8cf2cb1e1376cda9fc30cea515d8f0bfc (patch)
tree0345496c3a42ab4438b0d42950a98a71300cd0a1 /mi/mivaltree.c
parent3da5bb16edaec7356a0777b9d30307706c2f8ab5 (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.c18
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);