summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@nokia.com>2011-02-10 06:10:57 (GMT)
committerJørgen Lind <jorgen.lind@nokia.com>2011-03-01 11:05:20 (GMT)
commitb67d537070e88feb708d13b46cd1468e2c0dc0e8 (patch)
tree537c67b82782bcb04b2589fd10a51427e306184b
parent48cd01714e3aa76872983cae820cfc1c7504b065 (diff)
downloadQt-b67d537070e88feb708d13b46cd1468e2c0dc0e8.zip
Qt-b67d537070e88feb708d13b46cd1468e2c0dc0e8.tar.gz
Qt-b67d537070e88feb708d13b46cd1468e2c0dc0e8.tar.bz2
Allow using QPixmap outside GUI thread when using raster
-rw-r--r--src/gui/image/qpixmap.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp
index f896572..b276180 100644
--- a/src/gui/image/qpixmap.cpp
+++ b/src/gui/image/qpixmap.cpp
@@ -98,12 +98,21 @@ static bool qt_pixmap_thread_test()
qFatal("QPixmap: Must construct a QApplication before a QPaintDevice");
return false;
}
-#ifndef Q_WS_WIN
- if (!QApplication::testAttribute(Qt::AA_X11InitThreads) && qApp->thread() != QThread::currentThread()) {
- qWarning("QPixmap: It is not safe to use pixmaps outside the GUI thread");
- return false;
- }
+
+ if (qApp->thread() != QThread::currentThread()) {
+ bool fail = false;
+#if defined (Q_WS_X11)
+ if (!QApplication::testAttribute(Qt::AA_X11InitThreads))
+ fail = true;
+#else
+ if (QApplicationPrivate::graphics_system_name != QLatin1String("raster"))
+ fail = true;
#endif
+ if (fail) {
+ qWarning("QPixmap: It is not safe to use pixmaps outside the GUI thread");
+ return false;
+ }
+ }
return true;
}