mirror of
				https://github.com/Ryujinx/SDL.git
				synced 2025-11-04 12:44:56 +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 */
 | 
					#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED < 80000 */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int
 | 
					static void
 | 
				
			||||||
UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
 | 
					UIKit_ShowMessageBoxImpl(const SDL_MessageBoxData *messageboxdata, int *buttonid, int *returnValue)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    BOOL success = NO;
 | 
					    BOOL success = NO;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -199,12 +199,26 @@ UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!success) {
 | 
					    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 */
 | 
					#endif /* SDL_VIDEO_DRIVER_UIKIT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* vi: set ts=4 sw=4 expandtab: */
 | 
					/* vi: set ts=4 sw=4 expandtab: */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue