aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/mi/mivaltree.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/mi/mivaltree.c')
-rw-r--r--xorg-server/mi/mivaltree.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/xorg-server/mi/mivaltree.c b/xorg-server/mi/mivaltree.c
index 8e4e9a9e0..c49560e0b 100644
--- a/xorg-server/mi/mivaltree.c
+++ b/xorg-server/mi/mivaltree.c
@@ -275,6 +275,9 @@ miComputeClips(WindowPtr pParent,
eventMask | wOtherEventMasks(pParent)) & VisibilityChangeMask))
SendVisibilityNotify(pParent);
+ if (pParent->valdata==UnmapValData)
+ return; // return if no valid valdata
+
dx = pParent->drawable.x - pParent->valdata->before.oldAbsCorner.x;
dy = pParent->drawable.y - pParent->valdata->before.oldAbsCorner.y;
@@ -704,9 +707,11 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */
RegionUninit(&childUnion);
}
- RegionNull(&pParent->valdata->after.exposed);
- RegionNull(&pParent->valdata->after.borderExposed);
-
+ if (pParent->valdata && pParent->valdata!=UnmapValData)
+ {
+ RegionNull(&pParent->valdata->after.exposed);
+ RegionNull(&pParent->valdata->after.borderExposed);
+ }
/*
* each case below is responsible for updating the
* clipList and serial number for the parent window
@@ -721,8 +726,9 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */
* exposures and obscures as per miComputeClips and reset the parent's
* clipList.
*/
- RegionSubtract(&pParent->valdata->after.exposed,
- &totalClip, &pParent->clipList);
+ if (pParent->valdata && pParent->valdata!=UnmapValData)
+ RegionSubtract(&pParent->valdata->after.exposed,
+ &totalClip, &pParent->clipList);
/* fall through */
case VTMap:
RegionCopy(&pParent->clipList, &totalClip);