From 5a04b86c5e125a86bb7b3adde6203596aa9f3850 Mon Sep 17 00:00:00 2001 From: Tim Felgentreff <timfelgentreff@gmail.com> Date: Sun, 4 Feb 2018 15:13:38 +0100 Subject: [PATCH] Fix Wargus/war1gus#116: make window resizeable in windowed mode --- src/video/sdl.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/video/sdl.cpp b/src/video/sdl.cpp index c39f94fa6..5e1983b0b 100644 --- a/src/video/sdl.cpp +++ b/src/video/sdl.cpp @@ -594,6 +594,8 @@ void InitVideoSdl() /* SDL_HWSURFACE|SDL_HWPALETTE | */ if (Video.FullScreen) { flags |= SDL_FULLSCREEN; + } else { + flags |= SDL_RESIZABLE; } #if defined(USE_OPENGL) || defined(USE_GLES) @@ -897,6 +899,10 @@ static void SdlDoEvent(const EventCallback &callbacks, SDL_Event &event) event.key.keysym.sym, event.key.keysym.unicode); break; + case SDL_VIDEORESIZE: + Video.ResizeScreen(event.resize.w, event.resize.h); + break; + case SDL_QUIT: Exit(0); break; @@ -1163,7 +1169,7 @@ void ToggleFullScreen() SDL_UnlockSurface(TheScreen); } - TheScreen = SDL_SetVideoMode(w, h, bpp, flags ^ SDL_FULLSCREEN); + TheScreen = SDL_SetVideoMode(w, h, bpp, (flags ^ SDL_FULLSCREEN) ^ SDL_RESIZABLE); if (!TheScreen) { TheScreen = SDL_SetVideoMode(w, h, bpp, flags); if (!TheScreen) { // completely screwed.