summaryrefslogtreecommitdiffstats
path: root/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-16_17_34_08-Fix-fatal-X11-errors-when-both-external-display-and-command-arguments-are-provided-to-QApplication-This-resolves-Bug-1456-e7d0f7d.patch
blob: 40426ef81f1f18503475ea5db1e763285abb2a34 (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
diff --git a/src/kernel/qapplication_x11.cpp b/src/kernel/qapplication_x11.cpp
index 0f9d777..50a2bac 100644
--- a/src/kernel/qapplication_x11.cpp
+++ b/src/kernel/qapplication_x11.cpp
@@ -1790,18 +1790,26 @@ void qt_init_internal( int *argcptr, char **argv,
 	    }
 	}
 #endif
-	// Connect to X server
-
-	if( qt_is_gui_used ) {
-	    if ( ( appDpy = XOpenDisplay(appDpyName) ) == 0 ) {
-		qWarning( "%s: cannot connect to X server %s", appName,
-			  XDisplayName(appDpyName) );
-		qApp = 0;
-		exit( 1 );
-	    }
+	if ( display ) {
+		// Display connection already opened by another application
 
-	    if ( appSync )				// if "-sync" argument
-		XSynchronize( appDpy, TRUE );
+		appForeignDpy = TRUE;
+		appDpy  = display;
+	}
+	else {
+		// Connect to X server
+	
+		if( qt_is_gui_used ) {
+		if ( ( appDpy = XOpenDisplay(appDpyName) ) == 0 ) {
+			qWarning( "%s: cannot connect to X server %s", appName,
+				XDisplayName(appDpyName) );
+			qApp = 0;
+			exit( 1 );
+		}
+	
+		if ( appSync )				// if "-sync" argument
+			XSynchronize( appDpy, TRUE );
+		}
 	}
     }
     // Common code, regardless of whether display is foreign.