Fix fullscreen focus behavior

This commit is contained in:
Ethan Lee
2020-06-13 10:35:05 -04:00
parent 506628cef1
commit a15d01ad80
3 changed files with 16 additions and 7 deletions

View File

@@ -68,7 +68,7 @@ void KeyPoll::disabletextentry()
SDL_StopTextInput();
}
void KeyPoll::Poll()
void KeyPoll::Poll(Screen *screen)
{
SDL_Event evt;
while (SDL_PollEvent(&evt))
@@ -246,9 +246,14 @@ void KeyPoll::Poll()
isActive = true;
if (!useFullscreenSpaces)
{
SDL_Window *window = SDL_GetWindowFromID(evt.window.windowID);
wasFullscreen = SDL_GetWindowFlags(window);
SDL_SetWindowFullscreen(window, 0);
if (wasFullscreen)
{
screen->isWindowed = false;
SDL_SetWindowFullscreen(
SDL_GetWindowFromID(evt.window.windowID),
SDL_WINDOW_FULLSCREEN_DESKTOP
);
}
}
SDL_DisableScreenSaver();
}
@@ -257,9 +262,11 @@ void KeyPoll::Poll()
isActive = false;
if (!useFullscreenSpaces)
{
wasFullscreen = !screen->isWindowed;
screen->isWindowed = true;
SDL_SetWindowFullscreen(
SDL_GetWindowFromID(evt.window.windowID),
wasFullscreen
0
);
}
SDL_EnableScreenSaver();