diff options
author | Jani Hautakangas <jani.hautakangas@nokia.com> | 2011-01-10 11:22:15 (GMT) |
---|---|---|
committer | Jani Hautakangas <jani.hautakangas@nokia.com> | 2011-01-10 15:29:03 (GMT) |
commit | d62e9f4a6fe199ae790b1561fd4ba9ea84bd4d1e (patch) | |
tree | 7d28e05592295ad3f0ff14eed3c6f37483b12a61 /src/gui/kernel/qwidget_s60.cpp | |
parent | 2b1b617664bfc78f6e95e53dc0f9749bd1f2d27a (diff) | |
download | Qt-d62e9f4a6fe199ae790b1561fd4ba9ea84bd4d1e.zip Qt-d62e9f4a6fe199ae790b1561fd4ba9ea84bd4d1e.tar.gz Qt-d62e9f4a6fe199ae790b1561fd4ba9ea84bd4d1e.tar.bz2 |
Setting WA_TranslucentBackground after winid() is ineffective on Symbian.
Currently Symbian doesn't support semi-transparent EGL surfaces.
WA_TranslucentBackground attribute is ineffective if set after EGL
surface creation. To enable translucency in this case we need to
recreate backing store to get raster surface which supports translucency.
Task-number: QT-4416
Reviewed-by: Jason Barron
Diffstat (limited to 'src/gui/kernel/qwidget_s60.cpp')
-rw-r--r-- | src/gui/kernel/qwidget_s60.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index d6ad3c3..d55c21e 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -780,6 +780,14 @@ void QWidgetPrivate::s60UpdateIsOpaque() if (window->SetTransparencyAlphaChannel() == KErrNone) { window->SetBackgroundColor(TRgb(255, 255, 255, 0)); extra->topextra->nativeWindowTransparencyEnabled = 1; + + if (extra->topextra->backingStore.data() && + QApplicationPrivate::graphics_system_name == QLatin1String("openvg")) { + // Semi-transparent EGL surfaces aren't supported. We need to + // recreate backing store to get translucent surface (raster surface). + extra->topextra->backingStore.create(q); + extra->topextra->backingStore.registerWidget(q); + } } } else if (extra->topextra->nativeWindowTransparencyEnabled) { window->SetTransparentRegion(TRegionFix<1>()); |