Fixed bug #847
authorSam Lantinga <slouken@libsdl.org>
Mon, 02 Nov 2009 07:55:42 +0000
changeset 3422 ec4db979dddb
parent 3421 7bc83a9e09fd
child 3423 45ad54b4d9d6
Fixed bug #847 Roger Willcocks 2009-10-25 08:45:37 PDT appDidFinishLaunching is triggered before all the setup's complete. The easiest fix is to arrange for another event to be sent when it's really ready, and run SDL_main from there. Ref. http://blog.rightsprite.com/2008/11/iphone-applicationdidfinishlaunching.html SDL-1.3.0-4563/src/video/uikit/SDL_uikitappdelegate.m: - (void)postFinishLaunch { /* run the user's application, passing argc and argv */ int exit_status = SDL_main(forward_argc, forward_argv); /* free the memory we used to hold copies of argc and argv */ int i; for (i=0; i<forward_argc; i++) { free(forward_argv[i]); } free(forward_argv); /* exit, passing the return status from the user's application */ exit(exit_status); } - (void)applicationDidFinishLaunching:(UIApplication *)application { /* Set working directory to resource path */ [[NSFileManager defaultManager] changeCurrentDirectoryPath: [[NSBundle mainBundle] resourcePath]]; [self performSelector:@selector(postFinishLaunch) withObject:nil afterDelay:0.0];
src/video/uikit/SDL_uikitappdelegate.m
--- a/src/video/uikit/SDL_uikitappdelegate.m	Fri Oct 30 05:02:47 2009 +0000
+++ b/src/video/uikit/SDL_uikitappdelegate.m	Mon Nov 02 07:55:42 2009 +0000
@@ -71,11 +71,8 @@
 	return self;
 }
 
-- (void)applicationDidFinishLaunching:(UIApplication *)application {
-			
-	/* Set working directory to resource path */
-	[[NSFileManager defaultManager] changeCurrentDirectoryPath: [[NSBundle mainBundle] resourcePath]];
-	
+- (void)postFinishLaunch {
+
 	/* run the user's application, passing argc and argv */
 	int exit_status = SDL_main(forward_argc, forward_argv);
 	
@@ -88,7 +85,15 @@
 		
 	/* exit, passing the return status from the user's application */
 	exit(exit_status);
-		
+}
+
+- (void)applicationDidFinishLaunching:(UIApplication *)application {
+			
+	/* Set working directory to resource path */
+	[[NSFileManager defaultManager] changeCurrentDirectoryPath: [[NSBundle mainBundle] resourcePath]];
+	
+	[self performSelector:@selector(postFinishLaunch) withObject:nil
+afterDelay:0.0];
 }
 
 - (void)applicationWillTerminate:(UIApplication *)application {