summaryrefslogtreecommitdiff
path: root/composite
diff options
context:
space:
mode:
authorDeron Johnson <deron.johnson@sun.com>2006-03-29 17:51:54 +0000
committerDeron Johnson <deron.johnson@sun.com>2006-03-29 17:51:54 +0000
commite31e8ace1043eab340d6b60a6e98b23ebf102786 (patch)
tree9abb7e11fae83112a67367d857f7fb79fa72e40b /composite
parentff6f88348c7498e83b0b143ef3737fd6eb0995e4 (diff)
Fix composite overlay window bug 6411
Diffstat (limited to 'composite')
-rw-r--r--composite/compinit.c3
-rw-r--r--composite/compwindow.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/composite/compinit.c b/composite/compinit.c
index e74e38248..5a1361216 100644
--- a/composite/compinit.c
+++ b/composite/compinit.c
@@ -88,6 +88,7 @@ compCloseScreen (int index, ScreenPtr pScreen)
xfree (cs);
pScreen->devPrivates[CompScreenPrivateIndex].ptr = 0;
ret = (*pScreen->CloseScreen) (index, pScreen);
+
return ret;
}
@@ -419,5 +420,7 @@ compScreenInit (ScreenPtr pScreen)
pScreen->devPrivates[CompScreenPrivateIndex].ptr = (pointer) cs;
+ RegisterRealChildHeadProc(CompositeRealChildHead);
+
return TRUE;
}
diff --git a/composite/compwindow.c b/composite/compwindow.c
index 1f8409698..87055b70c 100644
--- a/composite/compwindow.c
+++ b/composite/compwindow.c
@@ -144,11 +144,19 @@ Bool
compCheckRedirect (WindowPtr pWin)
{
CompWindowPtr cw = GetCompWindow (pWin);
+ CompScreenPtr cs = GetCompScreen(pWin->drawable.pScreen);
Bool should;
should = pWin->realized && (pWin->drawable.class != InputOnly) &&
(cw != NULL);
+ /* Never redirect the overlay window */
+ if (cs->pOverlayWin != NULL) {
+ if (pWin == cs->pOverlayWin) {
+ should = FALSE;
+ }
+ }
+
if (should != pWin->redirectDraw)
{
if (should)