XQuartz: Do check_xinitrc() later to avoid possible deadlock.
(cherry picked from commit af95174a088dc787d124ec548b1005f5b67c9e8d)
This commit is contained in:
parent
d837d4e2af
commit
80b6768536
|
@ -788,20 +788,19 @@ static void check_xinitrc (void) {
|
||||||
Windows displayed by X11 applications may not have titlebars, or may look \
|
Windows displayed by X11 applications may not have titlebars, or may look \
|
||||||
different to windows displayed by native applications.\n\n\
|
different to windows displayed by native applications.\n\n\
|
||||||
Would you like to move aside the existing file and use the standard X11 \
|
Would you like to move aside the existing file and use the standard X11 \
|
||||||
environment?", @"Startup xinitrc dialog");
|
environment the next time you start X11?", @"Startup xinitrc dialog");
|
||||||
|
|
||||||
if (NSRunAlertPanel (nil, msg, NSLocalizedString (@"Yes", @""),
|
if(NSAlertDefaultReturn == NSRunAlertPanel (nil, msg, NSLocalizedString (@"Yes", @""),
|
||||||
NSLocalizedString (@"No", @""), nil)
|
NSLocalizedString (@"No", @""), nil)) {
|
||||||
== NSAlertDefaultReturn) {
|
char buf2[1024];
|
||||||
char buf2[1024];
|
int i = -1;
|
||||||
int i = -1;
|
|
||||||
|
|
||||||
snprintf (buf2, sizeof (buf2), "%s.old", buf);
|
snprintf (buf2, sizeof (buf2), "%s.old", buf);
|
||||||
|
|
||||||
for (i = 1; access (buf2, F_OK) == 0; i++)
|
for(i = 1; access (buf2, F_OK) == 0; i++)
|
||||||
snprintf (buf2, sizeof (buf2), "%s.old.%d", buf, i);
|
snprintf (buf2, sizeof (buf2), "%s.old.%d", buf, i);
|
||||||
|
|
||||||
rename (buf, buf2);
|
rename (buf, buf2);
|
||||||
}
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
|
@ -824,7 +823,6 @@ void X11ApplicationMain (int argc, char **argv, char **envp) {
|
||||||
[[NSNotificationCenter defaultCenter] addObserver:NSApp
|
[[NSNotificationCenter defaultCenter] addObserver:NSApp
|
||||||
selector:@selector (became_key:)
|
selector:@selector (became_key:)
|
||||||
name:NSWindowDidBecomeKeyNotification object:nil];
|
name:NSWindowDidBecomeKeyNotification object:nil];
|
||||||
check_xinitrc ();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The xpr Quartz mode is statically linked into this server.
|
* The xpr Quartz mode is statically linked into this server.
|
||||||
|
@ -850,6 +848,11 @@ void X11ApplicationMain (int argc, char **argv, char **envp) {
|
||||||
|
|
||||||
/* Tell the server thread that it can proceed */
|
/* Tell the server thread that it can proceed */
|
||||||
QuartzInitServer(argc, argv, envp);
|
QuartzInitServer(argc, argv, envp);
|
||||||
|
|
||||||
|
/* This must be done after QuartzInitServer because it can result in
|
||||||
|
* an mieqEnqueue() - <rdar://problem/6300249>
|
||||||
|
*/
|
||||||
|
check_xinitrc();
|
||||||
|
|
||||||
[NSApp run];
|
[NSApp run];
|
||||||
/* not reached */
|
/* not reached */
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue