diff options
author | Jani Hautakangas <ext-jani.hautakangas@nokia.com> | 2009-12-16 13:21:10 (GMT) |
---|---|---|
committer | Jani Hautakangas <ext-jani.hautakangas@nokia.com> | 2009-12-16 13:42:47 (GMT) |
commit | 4b815774358c3c981dc8bbbcb0dd68abe2e812f2 (patch) | |
tree | 3c095285ff03743e4563114e1dd40af0fffbffbf /src/gui/painting | |
parent | 989895e84806b88f0b1e0d75ce6dbf6c482357b6 (diff) | |
download | Qt-4b815774358c3c981dc8bbbcb0dd68abe2e812f2.zip Qt-4b815774358c3c981dc8bbbcb0dd68abe2e812f2.tar.gz Qt-4b815774358c3c981dc8bbbcb0dd68abe2e812f2.tar.bz2 |
Fix for QTBUG-4908 SVG transparency rendering problem.
QPixmap::copy discarded alpha channel.
This fix also removes usage of member variables CFbsBitGc and
CFbsBitmapDevice. Now those are used only in function scope.
Reviewed-by: Sami Merila
Diffstat (limited to 'src/gui/painting')
-rw-r--r-- | src/gui/painting/qwindowsurface_s60.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gui/painting/qwindowsurface_s60.cpp b/src/gui/painting/qwindowsurface_s60.cpp index c66da71..15427c6 100644 --- a/src/gui/painting/qwindowsurface_s60.cpp +++ b/src/gui/painting/qwindowsurface_s60.cpp @@ -68,12 +68,14 @@ QS60WindowSurface::QS60WindowSurface(QWidget* widget) mode = EColor16MA; // Try for transparency anyway // We create empty CFbsBitmap here -> it will be resized in setGeometry - CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new + CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new qt_symbian_throwIfError( bitmap->Create( TSize(0, 0), mode ) ); QS60PixmapData *data = new QS60PixmapData(QPixmapData::PixmapType); - data->fromSymbianBitmap(bitmap); - d_ptr->device = QPixmap(data); + if (data) { + data->fromSymbianBitmap(bitmap, true); + d_ptr->device = QPixmap(data); + } setStaticContentsSupport(true); } |