From 2bebff9404c42ed10a852de8112183137f953743 Mon Sep 17 00:00:00 2001 From: and3md Date: Thu, 29 Jun 2017 20:17:03 +0200 Subject: [PATCH] Restore window on SDL resets size and pos to values from window create on linux. --- src/dlangui/platforms/sdl/sdlapp.d | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/dlangui/platforms/sdl/sdlapp.d b/src/dlangui/platforms/sdl/sdlapp.d index 824df97d..560f623c 100644 --- a/src/dlangui/platforms/sdl/sdlapp.d +++ b/src/dlangui/platforms/sdl/sdlapp.d @@ -399,8 +399,17 @@ class SDLWindow : Window { res = true; break; case WindowState.normal: - if (_windowState != WindowState.normal) + if (_windowState != WindowState.normal) { SDL_RestoreWindow(_win); + version(linux) { + // some SDL versions, reset windows size and position to values from create window (SDL 2.0.4) on linux (don't know how it works on macOS) + if (newWindowRect.bottom == int.min && newWindowRect.right == int.min) + SDL_SetWindowSize(_win, _windowRect.right, _windowRect.bottom); + + if (newWindowRect.top == int.min && newWindowRect.left == int.min) + SDL_SetWindowPosition(_win, _windowRect.left, _windowRect.top); + } + } res = true; break; default: