diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index 10afdf91a43cca833e4e3f5537e350c748e921a3..a009d6415ace521a98c8254e7973bb69ba7f49b4 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -1082,12 +1082,15 @@ X11ApplicationCanEnterRandR(void) if (!XQuartzIsRootless) QuartzShowFullscreen(FALSE); - switch (NSRunAlertPanel(title, @"%@", - NSLocalizedString(@"Allow", - @""), - NSLocalizedString(@"Cancel", - @""), - NSLocalizedString(@"Always Allow", @""), msg)) { + NSInteger __block alert_result; + dispatch_sync(dispatch_get_main_queue(), ^{ + alert_result = NSRunAlertPanel(title, @"%@", + NSLocalizedString(@"Allow", @""), + NSLocalizedString(@"Cancel", @""), + NSLocalizedString(@"Always Allow", @""), msg); + }); + + switch (alert_result) { case NSAlertOtherReturn: [X11App prefs_set_boolean:@PREFS_NO_RANDR_ALERT value:YES]; [X11App prefs_synchronize];