[Xquartz-dev] Re: RFC: Combining both X11.apps into one
Jeremy Huddleston
jeremyhu at berkeley.edu
Mon Dec 3 17:19:49 PST 2007
> I have not looked at it, but what does it do in the event that a user
> launches X11 by double-clicking on the X11.app icon
Assuming they haven't done anything wonky, this just causes 'xterm' to
be executed (like currently). Launchd then executed '/A/U/X11.app/C/M/
X11 --launchd' instead of '/u/X/X11.app/C/M/X11'.
Additionally, if the user disables launchd support, double clicking /A/
U/X11.app will behave as Tiger did.
> and then, in a
> Terminal.app window does ssh -X <somewhere>?
same as it does now. This didn't change.
> I believe that the original
> problem was that another instance of X11.app would then launch with a
> different DISPLAY.
Ok, I see what you're getting at here. That will only be the case if
the user disables launchd support. This just rolls /u/X/X11.app into /
A/U/X11.app and executes the /u/X version if command line arguments
are given (like launchd or people starting it via command line for
various reasons) or if it can't connect to a DISPLAY (such as when you
disable launchd support for the "Tiger Way"). Here's the core of
it... pretty straightforward:
int main(int argc, char **argv) {
Display *display;
/* If we have command line arguments, assume we want a server */
if(argc > 1) {
if(strncmp(argv[1], "--launchd", 9) == 0) {
argc--;
argv[1] = argv[0];
argv++;
}
return server_main(argc, argv);
}
/* Now, try to open a display, if so, run the launcher */
display = XOpenDisplay(NULL);
if(display) {
/* Could open the display, start the launcher */
XCloseDisplay(display);
/* Give 2 seconds for the server to start...
* TODO: *Really* fix this race condition
*/
usleep(2000);
return launcher_main(argc, argv);
}
/* Couldn't open the display, assume we just want to start a
server */
return server_main(argc, argv);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3040 bytes
Desc: not available
Url : http://lists.macosforge.org/pipermail/xquartz-dev/attachments/20071203/b95c79bb/smime.bin
More information about the Xquartz-dev
mailing list