diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-02-09 21:23:03 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-02-09 21:23:03 (GMT) |
commit | 213b5d2651aaf55e76b3aab3788ab86a08a75b82 (patch) | |
tree | b6103525329ee34c80e1a68063726bd8f12766f1 /src/gui/painting | |
parent | 3817f59657147c6341dea54d220e5bfa704f24de (diff) | |
parent | 97305f4ca91b380f42ff5d3fd49c268df0c5ff8c (diff) | |
download | Qt-213b5d2651aaf55e76b3aab3788ab86a08a75b82.zip Qt-213b5d2651aaf55e76b3aab3788ab86a08a75b82.tar.gz Qt-213b5d2651aaf55e76b3aab3788ab86a08a75b82.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
4.7.2 changes
Change paging attributes for Symbian binaries
Fix build failure
Fix regression in creating mkspecs/default
Changes for 4.7.2
Recreate Symbian raster backing store when WA_TranslucentBackground set
Diffstat (limited to 'src/gui/painting')
-rw-r--r-- | src/gui/painting/qwindowsurface_s60.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/gui/painting/qwindowsurface_s60.cpp b/src/gui/painting/qwindowsurface_s60.cpp index 7dc5cb7..9f371a8 100644 --- a/src/gui/painting/qwindowsurface_s60.cpp +++ b/src/gui/painting/qwindowsurface_s60.cpp @@ -61,13 +61,11 @@ struct QS60WindowSurfacePrivate QList<QImage*> bufferImages; }; -QS60WindowSurface::QS60WindowSurface(QWidget* widget) - : QWindowSurface(widget), d_ptr(new QS60WindowSurfacePrivate) +TDisplayMode displayMode(bool opaque) { TDisplayMode mode = S60->screenDevice()->DisplayMode(); - bool isOpaque = qt_widget_private(widget)->isOpaque; - if (isOpaque) { + if (opaque) { mode = EColor16MU; } else { if (QSysInfo::symbianVersion() >= QSysInfo::SV_SF_3) @@ -75,7 +73,13 @@ QS60WindowSurface::QS60WindowSurface(QWidget* widget) else mode = EColor16MA; // Symbian prior to Symbian^3 sw accelerates EColor16MA } + return mode; +} +QS60WindowSurface::QS60WindowSurface(QWidget* widget) + : QWindowSurface(widget), d_ptr(new QS60WindowSurfacePrivate) +{ + TDisplayMode mode = displayMode(qt_widget_private(widget)->isOpaque); // 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 qt_symbian_throwIfError( bitmap->Create( TSize(0, 0), mode ) ); @@ -121,6 +125,11 @@ void QS60WindowSurface::beginPaint(const QRegion &rgn) if (!qt_widget_private(window())->isOpaque) { QS60PixmapData *pixmapData = static_cast<QS60PixmapData *>(d_ptr->device.data_ptr().data()); + + TDisplayMode mode = displayMode(false); + if (pixmapData->cfbsBitmap->DisplayMode() != mode) + pixmapData->convertToDisplayMode(mode); + pixmapData->beginDataAccess(); QPainter p(&pixmapData->image); |