mirror of
https://github.com/yawut/SDL.git
synced 2026-07-05 01:58:52 -05:00
Don't run the game loop while a messagebox is up
This commit is contained in:
parent
05ffb5035c
commit
820889a756
|
|
@ -22,6 +22,8 @@
|
|||
|
||||
#if SDL_VIDEO_DRIVER_UIKIT
|
||||
|
||||
extern SDL_bool UIKit_ShowingMessageBox();
|
||||
|
||||
extern int UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid);
|
||||
|
||||
#endif /* SDL_VIDEO_DRIVER_UIKIT */
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
/* Display a UIKit message box */
|
||||
|
||||
static SDL_bool s_showingMessageBox = SDL_FALSE;
|
||||
|
||||
@interface UIKit_UIAlertViewDelegate : NSObject <UIAlertViewDelegate> {
|
||||
@private
|
||||
|
|
@ -60,6 +61,12 @@
|
|||
@end // UIKit_UIAlertViewDelegate
|
||||
|
||||
|
||||
SDL_bool
|
||||
UIKit_ShowingMessageBox()
|
||||
{
|
||||
return s_showingMessageBox;
|
||||
}
|
||||
|
||||
int
|
||||
UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
|
||||
{
|
||||
|
|
@ -86,9 +93,12 @@ UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
|
|||
|
||||
// Run the main event loop until the alert has finished
|
||||
// Note that this needs to be done on the main thread
|
||||
s_showingMessageBox = SDL_TRUE;
|
||||
while (clicked == messageboxdata->numbuttons) {
|
||||
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
|
||||
}
|
||||
s_showingMessageBox = SDL_FALSE;
|
||||
|
||||
*buttonid = messageboxdata->buttons[clicked].buttonid;
|
||||
|
||||
[pool release];
|
||||
|
|
|
|||
|
|
@ -22,9 +22,10 @@
|
|||
|
||||
#if SDL_VIDEO_DRIVER_UIKIT
|
||||
|
||||
#import <QuartzCore/QuartzCore.h>
|
||||
#import <OpenGLES/EAGLDrawable.h>
|
||||
#import "SDL_uikitopenglview.h"
|
||||
#include <QuartzCore/QuartzCore.h>
|
||||
#include <OpenGLES/EAGLDrawable.h>
|
||||
#include "SDL_uikitopenglview.h"
|
||||
#include "SDL_uikitmessagebox.h"
|
||||
|
||||
|
||||
@implementation SDL_uikitopenglview
|
||||
|
|
@ -180,7 +181,10 @@
|
|||
|
||||
- (void)doLoop:(id)sender
|
||||
{
|
||||
animationCallback(animationCallbackParam);
|
||||
// Don't run the game loop while a messagebox is up
|
||||
if (!UIKit_ShowingMessageBox()) {
|
||||
animationCallback(animationCallbackParam);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setCurrentContext
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user