Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

Don't run the game loop while a messagebox is up

  • Loading branch information
slouken committed Nov 25, 2012
1 parent 3254ede commit f143c6a42a94dde27d6769e6a6ee20016c4f908e
@@ -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 @@ - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)
@end // UIKit_UIAlertViewDelegate


SDL_bool
UIKit_ShowingMessageBox()
{
return s_showingMessageBox;
}

int
UIKit_ShowMessageBox(const SDL_MessageBoxData *messageboxdata, int *buttonid)
{
@@ -86,9 +93,12 @@ - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)

// 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)stopAnimation

- (void)doLoop:(id)sender
{
animationCallback(animationCallbackParam);
// Don't run the game loop while a messagebox is up
if (!UIKit_ShowingMessageBox()) {
animationCallback(animationCallbackParam);
}
}

- (void)setCurrentContext

0 comments on commit f143c6a

Please sign in to comment.