mirror of
				https://github.com/Ryujinx/SDL.git
				synced 2025-11-04 07:44:48 +00:00 
			
		
		
		
	Make sure the UIKit message box is being handled on the main thread
Potentially fixes https://github.com/libsdl-org/SDL/issues/4865
This commit is contained in:
		
							parent
							
								
									2823534fef
								
							
						
					
					
						commit
						5613a56032
					
				| 
						 | 
				
			
			@ -186,8 +186,8 @@ UIKit_ShowMessageBoxAlertView(const SDL_MessageBoxData *messageboxdata, int *but
 | 
			
		|||
#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED < 80000 */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
 | 
			
		||||
static void
 | 
			
		||||
UIKit_ShowMessageBoxImpl(const SDL_MessageBoxData *messageboxdata, int *buttonid, int *returnValue)
 | 
			
		||||
{
 | 
			
		||||
    BOOL success = NO;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -199,12 +199,26 @@ UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    if (!success) {
 | 
			
		||||
        return SDL_SetError("Could not show message box.");
 | 
			
		||||
        *returnValue = SDL_SetError("Could not show message box.");
 | 
			
		||||
    } else {
 | 
			
		||||
        *returnValue = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
 | 
			
		||||
{ @autoreleasepool
 | 
			
		||||
{
 | 
			
		||||
    __block int returnValue = 0;
 | 
			
		||||
 | 
			
		||||
    if ([NSThread isMainThread]) {
 | 
			
		||||
        UIKit_ShowMessageBoxImpl(messageboxdata, buttonid, &returnValue);
 | 
			
		||||
    } else {
 | 
			
		||||
        dispatch_sync(dispatch_get_main_queue(), ^{ UIKit_ShowMessageBoxImpl(messageboxdata, buttonid, &returnValue); });
 | 
			
		||||
    }
 | 
			
		||||
    return returnValue;
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
#endif /* SDL_VIDEO_DRIVER_UIKIT */
 | 
			
		||||
 | 
			
		||||
/* vi: set ts=4 sw=4 expandtab: */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue