From 6715015cb6b0461f671ba366bff8ddbaaad0b924 Mon Sep 17 00:00:00 2001 From: rogerman Date: Thu, 31 Jul 2025 21:12:50 -0700 Subject: [PATCH] Cocoa Port: Try to fix some potential issues with UI updates happening off the main thread. --- .../cocoa/userinterface/EmuControllerDelegate.mm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/desmume/src/frontend/cocoa/userinterface/EmuControllerDelegate.mm b/desmume/src/frontend/cocoa/userinterface/EmuControllerDelegate.mm index 2fe9e93c5..833fc7929 100644 --- a/desmume/src/frontend/cocoa/userinterface/EmuControllerDelegate.mm +++ b/desmume/src/frontend/cocoa/userinterface/EmuControllerDelegate.mm @@ -992,7 +992,7 @@ puts("DeSmuME: User has just granted access to the microphone."); } - [self updateHostMicrophonePermissionStatus]; + [self performSelectorOnMainThread:@selector(updateHostMicrophonePermissionStatus) withObject:nil waitUntilDone:NO]; }]; } } @@ -2368,10 +2368,10 @@ if (micIcon != [self currentMicStatusIcon]) { - [self performSelectorOnMainThread:@selector(setCurrentMicStatusIcon:) withObject:micIcon waitUntilDone:NO]; + [self setCurrentMicStatusIcon:micIcon]; } - [ndsMicLevelIndicator performSelectorOnMainThread:@selector(setNeedsDisplay) withObject:nil waitUntilDone:NO]; + [ndsMicLevelIndicator setNeedsDisplay]; } - (AudioSampleBlockGenerator *) selectedAudioFileGenerator @@ -3292,7 +3292,7 @@ - (void) doMicLevelUpdateFromController:(CocoaDSController *)cdsController { - [self updateMicStatusIcon]; + [self performSelectorOnMainThread:@selector(updateMicStatusIcon) withObject:nil waitUntilDone:NO]; } - (void) doMicHardwareStateChangedFromController:(CocoaDSController *)cdsController @@ -3302,7 +3302,7 @@ { const BOOL hwMicAvailable = (isHardwareEnabled && !isHardwareLocked && isAuthorized); [self setIsHardwareMicAvailable:hwMicAvailable]; - [self updateMicStatusIcon]; + [self performSelectorOnMainThread:@selector(updateMicStatusIcon) withObject:nil waitUntilDone:NO]; } - (void) doMicHardwareGainChangedFromController:(CocoaDSController *)cdsController gain:(float)gainValue