summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKimmo Hämäläinen <kimmo.hamalainen@nokia.com>2010-11-23 14:16:26 +0200
committerAdam Endrodi <ext-adam.endrodi@nokia.com>2010-12-02 17:51:50 +0200
commit8503958749116403d239cc146b8358fba4a89129 (patch)
tree3fd4558690ff4023a2da73e2936deb5e1c05b176
parent9a377088d55aa53923dc419feffdf69a5049117f (diff)
Limit xoverlay changes for NB#202713 to the EGL backend only
-rw-r--r--src/mcompositemanager.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mcompositemanager.cpp b/src/mcompositemanager.cpp
index d14c9c6..0866419 100644
--- a/src/mcompositemanager.cpp
+++ b/src/mcompositemanager.cpp
@@ -1144,10 +1144,12 @@ bool MCompositeManagerPrivate::possiblyUnredirectTopmostWindow()
}
if (top && cw && !MCompositeWindow::hasTransitioningWindow()) {
+#ifdef GLES2_VERSION
if (compositing) {
showOverlayWindow(false);
compositing = false;
}
+#endif
// unredirect the chosen window and any docks and OR windows above it
// TODO: what else should be unredirected?
if (!((MTexturePixmapItem *)cw)->isDirectRendered()) {
@@ -1166,6 +1168,12 @@ bool MCompositeManagerPrivate::possiblyUnredirectTopmostWindow()
}
}
}
+#ifndef GLES2_VERSION
+ if (compositing) {
+ showOverlayWindow(false);
+ compositing = false;
+ }
+#endif
ret = true;
}
return ret;
@@ -3388,7 +3396,9 @@ void MCompositeManagerPrivate::showOverlayWindow(bool show)
ShapeSet, Unsorted);
overlay_mapped = false;
} else if (show && (!overlay_mapped || first_call)) {
+#ifdef GLES2_VERSION
enableRedirection(false);
+#endif
XShapeCombineRectangles(QX11Info::display(), xoverlay,
ShapeBounding, 0, 0, &fs, 1,
ShapeSet, Unsorted);
@@ -3402,6 +3412,9 @@ void MCompositeManagerPrivate::showOverlayWindow(bool show)
ShapeInput, 0, 0, r);
XFixesDestroyRegion(QX11Info::display(), r);
overlay_mapped = true;
+#ifndef GLES2_VERSION
+ enableRedirection(false);
+#endif
emit compositingEnabled();
}
first_call = false;
@@ -3446,7 +3459,9 @@ void MCompositeManagerPrivate::disableCompositing(ForcingLevel forced)
return;
}
+#ifdef GLES2_VERSION
showOverlayWindow(false);
+#endif
for (QHash<Window, MCompositeWindow *>::iterator it = windows.begin();
it != windows.end(); ++it) {
@@ -3458,6 +3473,10 @@ void MCompositeManagerPrivate::disableCompositing(ForcingLevel forced)
setWindowDebugProperties(it.key());
}
+#ifndef GLES2_VERSION
+ showOverlayWindow(false);
+#endif
+
if (MDecoratorFrame::instance()->decoratorItem())
MDecoratorFrame::instance()->lower();