From 7cd25bdadc9813ee693a5b4cabb87bbe3348b707 Mon Sep 17 00:00:00 2001
From: fgsfds <pvt.fgsfds@gmail.com>
Date: Tue, 18 Feb 2020 23:03:28 +0300
Subject: [PATCH] SDL2: set window position properly; always center when going
 fullscreen->windowed

---
 src/game/sdl2/g_system.pas | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/game/sdl2/g_system.pas b/src/game/sdl2/g_system.pas
index 6fff48b..29a81b0 100644
--- a/src/game/sdl2/g_system.pas
+++ b/src/game/sdl2/g_system.pas
@@ -191,8 +191,12 @@ implementation
     end
     else
     begin
+      if fullScreen then flags := SDL_WINDOW_FULLSCREEN else flags := 0;
+      SDL_SetWindowFullscreen(window, flags);
       SDL_SetWindowSize(window, w, h);
-      if wc then
+      if maximized then SDL_MaximizeWindow(window);
+      // always reset to center when changing fullscreen->windowed for safety purposes
+      if wc or (gFullscreen and not fullscreen) or (gWinMaximized and not maximized) then
       begin
         x := SDL_WINDOWPOS_CENTERED;
         y := SDL_WINDOWPOS_CENTERED
@@ -208,10 +212,6 @@ implementation
         SDL_GetWindowPosition(window, @x, @y);
         wx := x; wy := y
       end;
-      if maximized then
-        SDL_MaximizeWindow(window);
-      if fullScreen then flags := SDL_WINDOW_FULLSCREEN else flags := 0;
-      SDL_SetWindowFullscreen(window, flags);
       gFullScreen := fullscreen;
       gWinMaximized := maximized;
       gRC_FullScreen := fullscreen;
-- 
2.29.2