From 8503958749116403d239cc146b8358fba4a89129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kimmo=20H=E4m=E4l=E4inen?= Date: Tue, 23 Nov 2010 14:16:26 +0200 Subject: Limit xoverlay changes for NB#202713 to the EGL backend only --- src/mcompositemanager.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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::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(); -- cgit v1.2.3