Only change the UI orientation if it's actually necessary for the mode.
--- a/src/video/uikit/SDL_uikitvideo.m Sat Sep 29 03:42:40 2012 -0700
+++ b/src/video/uikit/SDL_uikitvideo.m Sat Sep 29 16:41:32 2012 -0700
@@ -357,11 +357,12 @@
SDL_DisplayModeData *modedata = (SDL_DisplayModeData *)mode->driverdata;
[data->uiscreen setCurrentMode:modedata->uiscreenmode];
- CGSize size = [modedata->uiscreenmode size];
- if (size.width >= size.height) {
- [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
- } else {
- [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:NO];
+ if (mode->w > mode->h) {
+ if (!UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))
+ [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
+ } else if (mode->w < mode->h) {
+ if (!UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]))
+ [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:NO];
}
}