diff options
author | Kimmo Hämäläinen <kimmo.hamalainen@nokia.com> | 2010-11-23 14:16:26 +0200 |
---|---|---|
committer | Adam Endrodi <ext-adam.endrodi@nokia.com> | 2010-12-02 17:51:50 +0200 |
commit | 8503958749116403d239cc146b8358fba4a89129 (patch) | |
tree | 3fd4558690ff4023a2da73e2936deb5e1c05b176 | |
parent | 9a377088d55aa53923dc419feffdf69a5049117f (diff) |
Limit xoverlay changes for NB#202713 to the EGL backend only
-rw-r--r-- | src/mcompositemanager.cpp | 19 |
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(); |