From b83972715fda5d73cb5e14290cbc003e6ef90294 Mon Sep 17 00:00:00 2001 From: adrian17 Date: Wed, 30 Jul 2014 12:54:36 +0200 Subject: [PATCH] Basic support for switching window/fullscreen with Alt+Enter --- src/osinterface.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/osinterface.c b/src/osinterface.c index be2e2605f2..7edbe19395 100644 --- a/src/osinterface.c +++ b/src/osinterface.c @@ -310,6 +310,22 @@ void osinterface_draw() } } +static void osinterface_toggle_fullscreen(){ + //may be useful if we create a dropdown window with all three options + const int fullscreen_modes[] = { 0, SDL_WINDOW_FULLSCREEN, SDL_WINDOW_FULLSCREEN_DESKTOP }; + + //temporary, only switches between window and true fullscreen + static int mode = 0; + mode = !mode; + + if(SDL_SetWindowFullscreen(_window, fullscreen_modes[mode])){ + RCT2_ERROR("SDL_SetWindowFullscreen %s", SDL_GetError()); + exit(1); + } + //SDL automatically resizes the fullscreen window to the nearest allowed screen resolution + //No need to call osinterface_resize() here, SDL_WINDOWEVENT_SIZE_CHANGED event will be triggered anyway +} + void osinterface_process_messages() { SDL_Event e; @@ -382,6 +398,8 @@ void osinterface_process_messages() case SDL_KEYDOWN: gLastKeyPressed = e.key.keysym.sym; gKeysPressed[e.key.keysym.scancode] = 1; + if (e.key.keysym.sym == SDLK_RETURN && e.key.keysym.mod & KMOD_ALT) + osinterface_toggle_fullscreen(); break; default: break;