Skip to content

Commit

Permalink
Fixed SDL_SetWindowFullscreen on iOS causing the window's reported di…
Browse files Browse the repository at this point in the history
…mensions and supported orientations to go out of sync with what they should be, if the device orientation was different from the screen orientation when the function call was made.
  • Loading branch information
slime73 committed Jul 25, 2014
1 parent 05afbfd commit 0e5df60
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/video/uikit/SDL_uikitappdelegate.m
Expand Up @@ -242,6 +242,28 @@ - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
SDL_SendAppEvent(SDL_APP_LOWMEMORY);
}

- (void)application:(UIApplication *)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation
{
UIInterfaceOrientation orientation = application.statusBarOrientation;
SDL_VideoDevice *_this = SDL_GetVideoDevice();

if (_this && _this->num_displays > 0) {
SDL_VideoDisplay *display = &_this->displays[0]; /* Main screen. */
SDL_DisplayMode *mode = &display->desktop_mode;

/* The desktop display mode should be kept in sync with the screen
* orientation so that updating a window's fullscreen state to
* SDL_WINDOW_FULLSCREEN_DESKTOP keeps the window dimensions in the
* correct orientation.
*/
if (UIInterfaceOrientationIsLandscape(orientation) != (mode->w > mode->h)) {
int height = mode->w;
mode->w = mode->h;
mode->h = height;
}
}
}

- (void) applicationWillResignActive:(UIApplication*)application
{
SDL_VideoDevice *_this = SDL_GetVideoDevice();
Expand Down

0 comments on commit 0e5df60

Please sign in to comment.