summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@digia.com>2014-08-22 09:38:35 +0200
committerLaszlo Agocs <laszlo.agocs@digia.com>2014-08-24 23:01:58 +0200
commitf16de5c1fd8cf0e9d6a37aaa771144ccc4220fba (patch)
treeba78fbf15bfb93ce3122409451aca858e3d41a23 /src/gui
parenta0cc43fbc843a51849757ec452b5595256ae22c9 (diff)
Fix composition for translucent AlwaysStackOnTop widgets
Writing out the alpha is re-enabled too early. When blitting the AlwaysStackOnTop widgets as the last step of the composition, they need the exact same settings as the backingstore content, meaning blending but without writing out alpha. Move the glColorMask call to fix this. This will avoid issues with semi-transparent AlwaysStackOnTop widgets when the top-level has alpha enabled too. Task-number: QTBUG-40910 Change-Id: Id6d0d684cfa78bf79b65a097efd92de575e73b2c Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/painting/qplatformbackingstore.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gui/painting/qplatformbackingstore.cpp b/src/gui/painting/qplatformbackingstore.cpp
index 66a56ac32f..25f25f9fa8 100644
--- a/src/gui/painting/qplatformbackingstore.cpp
+++ b/src/gui/painting/qplatformbackingstore.cpp
@@ -276,7 +276,6 @@ void QPlatformBackingStore::composeAndFlush(QWindow *window, const QRegion &regi
if (d_ptr->needsSwizzle)
d_ptr->blitter->setSwizzleRB(false);
}
- funcs->glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
// Textures for renderToTexture widgets that have WA_AlwaysStackOnTop set.
for (int i = 0; i < textures->count(); ++i) {
@@ -287,6 +286,7 @@ void QPlatformBackingStore::composeAndFlush(QWindow *window, const QRegion &regi
}
}
+ funcs->glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
funcs->glDisable(GL_BLEND);
d_ptr->blitter->release();