mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-29 09:28:15 +03:00
Fix fullscreen focus behavior
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user