summaryrefslogtreecommitdiff
blob: 0350183f8a95c278343dc955335a9ea69bd953b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
--- src/corelib/global/qnamespace.qdoc.sav	2011-08-23 14:02:27.000000000 +0200
+++ src/corelib/global/qnamespace.qdoc	2011-11-22 13:06:00.879288001 +0100
@@ -167,6 +167,10 @@
            attribute is true. This attribute must be set after QApplication is
            constructed. This is only supported in Symbian^3 and later Symbian releases.
 
+    \value AA_X11InitThreads Calls XInitThreads() as part of the QApplication
+           construction in order to make Xlib calls thread-safe.
+
+
     \omitvalue AA_AttributeCount
 */
 
--- src/corelib/global/qnamespace.h.sav	2011-08-23 14:02:27.000000000 +0200
+++ src/corelib/global/qnamespace.h	2011-11-22 13:07:35.925288002 +0100
@@ -544,6 +544,7 @@ public:
         AA_MacDontSwapCtrlAndMeta = 7,
         AA_S60DontConstructApplicationPanes = 8,
         AA_S60DisablePartialScreenInputMode = 9,
+        AA_X11InitThreads = 10,
 
         // Add new attributes before this line
         AA_AttributeCount
--- src/gui/kernel/qapplication_x11.cpp.sav	2011-08-23 14:02:27.000000000 +0200
+++ src/gui/kernel/qapplication_x11.cpp	2011-11-22 13:06:00.881288001 +0100
@@ -1739,6 +1739,9 @@ void qt_init(QApplicationPrivate *priv,
     } else {
         // Qt controls everything (default)
 
+        if (QApplication::testAttribute(Qt::AA_X11InitThreads))
+            XInitThreads();
+
         // Set application name and class
         char *app_class = 0;
         if (argv && argv[0]) {
--- src/gui/image/qpixmap.cpp.sav	2011-08-23 14:02:27.000000000 +0200
+++ src/gui/image/qpixmap.cpp	2011-11-22 13:06:39.723288001 +0100
@@ -99,7 +99,7 @@ static bool qt_pixmap_thread_test()
         return false;
     }
 #ifndef Q_WS_WIN
-    if (qApp->thread() != QThread::currentThread()) {
+    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;
     }