mirror of https://github.com/encounter/SDL.git
more SDL fullscreen state tracking fixes, don't update fullscreen flags on failure to change fullscreen state
This commit is contained in:
parent
792354d6f0
commit
eeddb7c534
|
@ -1980,6 +1980,7 @@ SDL_RestoreWindow(SDL_Window * window)
|
||||||
int
|
int
|
||||||
SDL_SetWindowFullscreen(SDL_Window * window, Uint32 flags)
|
SDL_SetWindowFullscreen(SDL_Window * window, Uint32 flags)
|
||||||
{
|
{
|
||||||
|
Uint32 oldflags;
|
||||||
CHECK_WINDOW_MAGIC(window, -1);
|
CHECK_WINDOW_MAGIC(window, -1);
|
||||||
|
|
||||||
flags &= FULLSCREEN_MASK;
|
flags &= FULLSCREEN_MASK;
|
||||||
|
@ -1989,10 +1990,17 @@ SDL_SetWindowFullscreen(SDL_Window * window, Uint32 flags)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* clear the previous flags and OR in the new ones */
|
/* clear the previous flags and OR in the new ones */
|
||||||
|
oldflags = window->flags & FULLSCREEN_MASK;
|
||||||
window->flags &= ~FULLSCREEN_MASK;
|
window->flags &= ~FULLSCREEN_MASK;
|
||||||
window->flags |= flags;
|
window->flags |= flags;
|
||||||
|
|
||||||
return SDL_UpdateFullscreenMode(window, FULLSCREEN_VISIBLE(window));
|
if (SDL_UpdateFullscreenMode(window, FULLSCREEN_VISIBLE(window)) == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window->flags &= ~FULLSCREEN_MASK;
|
||||||
|
window->flags |= oldflags;
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static SDL_Surface *
|
static SDL_Surface *
|
||||||
|
|
|
@ -646,6 +646,8 @@ SetWindowStyle(SDL_Window * window, unsigned int style)
|
||||||
|
|
||||||
isFullscreenSpace = NO;
|
isFullscreenSpace = NO;
|
||||||
inFullscreenTransition = NO;
|
inFullscreenTransition = NO;
|
||||||
|
|
||||||
|
[self windowDidExitFullScreen:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)windowDidEnterFullScreen:(NSNotification *)aNotification
|
- (void)windowDidEnterFullScreen:(NSNotification *)aNotification
|
||||||
|
@ -690,6 +692,8 @@ SetWindowStyle(SDL_Window * window, unsigned int style)
|
||||||
|
|
||||||
isFullscreenSpace = YES;
|
isFullscreenSpace = YES;
|
||||||
inFullscreenTransition = NO;
|
inFullscreenTransition = NO;
|
||||||
|
|
||||||
|
[self windowDidEnterFullScreen:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)windowDidExitFullScreen:(NSNotification *)aNotification
|
- (void)windowDidExitFullScreen:(NSNotification *)aNotification
|
||||||
|
|
Loading…
Reference in New Issue