Emscripten: reset fullscreen_window when leaving fullscreen
If the browser left fullscreen mode by the user pressing ESC, the next call to SDL_SetWindowFullscreen(1) will fail as it thinks the window is already fullscreen. (#65)
parent
82b2c849f0
commit
80d690a2a0
|
@ -551,6 +551,8 @@ static EM_BOOL
|
|||
Emscripten_HandleFullscreenChange(int eventType, const EmscriptenFullscreenChangeEvent *fullscreenChangeEvent, void *userData)
|
||||
{
|
||||
SDL_WindowData *window_data = userData;
|
||||
SDL_VideoDisplay *display;
|
||||
|
||||
if(fullscreenChangeEvent->isFullscreen)
|
||||
{
|
||||
window_data->window->flags |= window_data->requested_fullscreen_mode;
|
||||
|
@ -563,6 +565,13 @@ Emscripten_HandleFullscreenChange(int eventType, const EmscriptenFullscreenChang
|
|||
else
|
||||
{
|
||||
window_data->window->flags &= ~FULLSCREEN_MASK;
|
||||
|
||||
/* reset fullscreen window if the browser left fullscreen */
|
||||
display = SDL_GetDisplayForWindow(window_data->window);
|
||||
|
||||
if (display->fullscreen_window == window_data->window) {
|
||||
display->fullscreen_window = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue