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>
(cherry picked from commit 520e7a1310)
This commit is contained in:
Jeremy Huddleston Sequoia 2021-01-27 15:03:46 -08:00
parent 2fe5bf4bad
commit 2087b7782c

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