mirror of https://github.com/encounter/SDL.git
Fixed SDL_SetWindowFullscreen on iOS to properly update the view's frame.
This commit is contained in:
parent
e02e34521a
commit
cf2958a8de
|
@ -240,6 +240,7 @@ UIKit_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display
|
|||
SDL_WindowData *windowdata = (SDL_WindowData *) window->driverdata;
|
||||
SDL_uikitviewcontroller *viewcontroller = windowdata->viewcontroller;
|
||||
UIWindow *uiwindow = windowdata->uiwindow;
|
||||
CGRect bounds;
|
||||
|
||||
if (fullscreen || (window->flags & SDL_WINDOW_BORDERLESS)) {
|
||||
[UIApplication sharedApplication].statusBarHidden = YES;
|
||||
|
@ -253,13 +254,17 @@ UIKit_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display
|
|||
}
|
||||
#endif
|
||||
|
||||
CGRect bounds;
|
||||
if (fullscreen) {
|
||||
if (fullscreen || (window->flags & SDL_WINDOW_BORDERLESS)) {
|
||||
bounds = [displaydata->uiscreen bounds];
|
||||
} else {
|
||||
bounds = [displaydata->uiscreen applicationFrame];
|
||||
}
|
||||
|
||||
/* Update the view's frame to account for the status bar change. */
|
||||
windowdata->view.frame = bounds;
|
||||
[windowdata->view setNeedsLayout];
|
||||
[windowdata->view layoutIfNeeded];
|
||||
|
||||
/* Get frame dimensions */
|
||||
int width = (int) bounds.size.width;
|
||||
int height = (int) bounds.size.height;
|
||||
|
@ -268,21 +273,11 @@ UIKit_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display
|
|||
screen to match, so we pick the closest to what we wanted.
|
||||
*/
|
||||
if (window->w >= window->h) {
|
||||
if (width > height) {
|
||||
window->w = width;
|
||||
window->h = height;
|
||||
} else {
|
||||
window->w = height;
|
||||
window->h = width;
|
||||
}
|
||||
window->w = SDL_max(width, height);
|
||||
window->h = SDL_min(width, height);
|
||||
} else {
|
||||
if (width > height) {
|
||||
window->w = height;
|
||||
window->h = width;
|
||||
} else {
|
||||
window->w = width;
|
||||
window->h = height;
|
||||
}
|
||||
window->w = SDL_min(width, height);
|
||||
window->h = SDL_max(width, height);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue