mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-23 01:59:43 +01:00
Fix fullscreen focus behavior
This commit is contained in:
parent
506628cef1
commit
a15d01ad80
3 changed files with 16 additions and 7 deletions
|
@ -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();
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
|
||||
#include "SDL.h"
|
||||
|
||||
#include "Screen.h"
|
||||
|
||||
enum Kybrd
|
||||
{
|
||||
KEYBOARD_UP = SDLK_UP,
|
||||
|
@ -52,7 +54,7 @@ public:
|
|||
|
||||
void disabletextentry();
|
||||
|
||||
void Poll();
|
||||
void Poll(Screen *screen);
|
||||
|
||||
bool isDown(SDL_Keycode key);
|
||||
|
||||
|
|
|
@ -338,7 +338,7 @@ int main(int argc, char *argv[])
|
|||
|
||||
|
||||
|
||||
key.Poll();
|
||||
key.Poll(&gameScreen);
|
||||
if(key.toggleFullscreen)
|
||||
{
|
||||
if(!gameScreen.isWindowed)
|
||||
|
|
Loading…
Reference in a new issue