xquartz: Ensure that NSRunAlertPanel() is run on the main thread

Fixes: https://github.com/XQuartz/XQuartz/issues/30
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
This commit is contained in:
Jeremy Huddleston Sequoia 2021-01-27 15:03:46 -08:00
parent 7d0bb7ed06
commit 520e7a1310
1 changed files with 9 additions and 6 deletions

View File

@ -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];