From e234575d5443ab5a6557f950289b471b219a1b1e Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Thu, 17 Jul 2014 22:55:59 -0300 Subject: [PATCH] Disabled the custom iOS splashscreen code - it interferes with the normal rotation and orientation behaviour of SDL windows. --- src/video/uikit/SDL_uikitappdelegate.m | 10 ++++++++-- src/video/uikit/SDL_uikitviewcontroller.m | 1 + src/video/uikit/SDL_uikitwindow.m | 8 ++------ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/video/uikit/SDL_uikitappdelegate.m b/src/video/uikit/SDL_uikitappdelegate.m index 2d9280782..212d57691 100644 --- a/src/video/uikit/SDL_uikitappdelegate.m +++ b/src/video/uikit/SDL_uikitappdelegate.m @@ -205,12 +205,18 @@ SDL_IdleTimerDisabledChanged(void *userdata, const char *name, const char *oldVa - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { /* Keep the launch image up until we set a video mode */ - launch_window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; + + /* This is disabled temporarily because the splash viewcontroller is + * interfering with rotation once a regular window is created: the view's + * orientations are incorrect and the status bar rotates without the view. + * Additionally, the splash viewcontroller doesn't load the correct launch + * images on iOS 7 and modern devices. */ + /*launch_window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; UIViewController *splashViewController = [[SDL_splashviewcontroller alloc] init]; launch_window.rootViewController = splashViewController; [launch_window addSubview:splashViewController.view]; - [launch_window makeKeyAndVisible]; + [launch_window makeKeyAndVisible];*/ /* Set working directory to resource path */ [[NSFileManager defaultManager] changeCurrentDirectoryPath: [[NSBundle mainBundle] resourcePath]]; diff --git a/src/video/uikit/SDL_uikitviewcontroller.m b/src/video/uikit/SDL_uikitviewcontroller.m index 808280ec1..7fee597eb 100644 --- a/src/video/uikit/SDL_uikitviewcontroller.m +++ b/src/video/uikit/SDL_uikitviewcontroller.m @@ -127,6 +127,7 @@ - (UIStatusBarStyle)preferredStatusBarStyle { #ifdef __IPHONE_7_0 + /* We assume most games don't have a bright white background. */ return UIStatusBarStyleLightContent; #else /* This method is only used in iOS 7+, so the return value here isn't important. */ diff --git a/src/video/uikit/SDL_uikitwindow.m b/src/video/uikit/SDL_uikitwindow.m index 78f0c211f..f25479b75 100644 --- a/src/video/uikit/SDL_uikitwindow.m +++ b/src/video/uikit/SDL_uikitwindow.m @@ -42,8 +42,6 @@ #include - - static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bool created) { SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window); @@ -115,9 +113,7 @@ static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bo * device orientation changes. This will trigger resize events, if * appropriate. */ - SDL_uikitviewcontroller *controller; - controller = [SDL_uikitviewcontroller alloc]; - data->viewcontroller = [controller initWithSDLWindow:window]; + data->viewcontroller = [[SDL_uikitviewcontroller alloc] initWithSDLWindow:window]; [data->viewcontroller setTitle:@"SDL App"]; /* !!! FIXME: hook up SDL_SetWindowTitle() */ return 0; @@ -245,7 +241,7 @@ UIKit_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display SDL_uikitviewcontroller *viewcontroller = windowdata->viewcontroller; UIWindow *uiwindow = windowdata->uiwindow; - if (fullscreen) { + if (fullscreen || (window->flags & SDL_WINDOW_BORDERLESS)) { [UIApplication sharedApplication].statusBarHidden = YES; } else { [UIApplication sharedApplication].statusBarHidden = NO;