summaryrefslogtreecommitdiff
path: root/mi/mivaltree.c
diff options
context:
space:
mode:
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);