diff options
-rw-r--r-- | src/kernel/qapplication_x11.cpp | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/kernel/qapplication_x11.cpp b/src/kernel/qapplication_x11.cpp index 5faeb3995..41abcb20e 100644 --- a/src/kernel/qapplication_x11.cpp +++ b/src/kernel/qapplication_x11.cpp @@ -1803,18 +1803,26 @@ void tqt_init_internal( int *argcptr, char **argv, } } #endif - // Connect to X server - - if( tqt_is_gui_used ) { - if ( ( appDpy = XOpenDisplay(appDpyName) ) == 0 ) { - tqWarning( "%s: cannot connect to X server %s", appName, - XDisplayName(appDpyName) ); - tqApp = 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( tqt_is_gui_used ) { + if ( ( appDpy = XOpenDisplay(appDpyName) ) == 0 ) { + tqWarning( "%s: cannot connect to X server %s", appName, + XDisplayName(appDpyName) ); + tqApp = 0; + exit( 1 ); + } + + if ( appSync ) // if "-sync" argument + XSynchronize( appDpy, TRUE ); + } } } // Common code, regardless of whether display is foreign. |