From 20da2356a90babcba73d507b6229a1f0cbbc4316 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Sun, 5 Nov 2006 01:09:57 +0000 Subject: (svn r7060) -Fix (r5874): Restore of window maximized state not always working (Mart3p) . Remember maximize state even between switching fullscreen/windowed mode. --- video/win32_v.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'video') diff --git a/video/win32_v.c b/video/win32_v.c index 279fc4709..9d0cc5247 100644 --- a/video/win32_v.c +++ b/video/win32_v.c @@ -255,7 +255,6 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP case WM_CLOSE: HandleExitGameRequest(); - _window_maximize = IsZoomed(_wnd.main_wnd); return 0; case WM_LBUTTONDOWN: @@ -390,6 +389,9 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP case WM_SIZE: if (wParam != SIZE_MINIMIZED) { + /* Set maximized flag when we maximize (obviously), but also when we + * switched to fullscreen from a maximized state */ + _window_maximize = (wParam == SIZE_MAXIMIZED || (_window_maximize && _fullscreen)); ClientSizeChanged(LOWORD(lParam), HIWORD(lParam)); } return 0; @@ -557,6 +559,8 @@ static void MakeWindow(bool full_screen) SetRect(&r, 0, 0, _wnd.width_org, _wnd.height_org); } else { style = WS_OVERLAPPEDWINDOW | WS_VISIBLE; + /* On window creation, check if we were in maximize mode before */ + if (_window_maximize) style |= WS_MAXIMIZE; SetRect(&r, 0, 0, _wnd.width, _wnd.height); } @@ -577,12 +581,6 @@ static void MakeWindow(bool full_screen) _wnd.main_wnd = CreateWindow("OTTD", Windowtitle, style, x, y, w, h, 0, 0, GetModuleHandle(NULL), 0); if (_wnd.main_wnd == NULL) error("CreateWindow failed"); - - /* On startup let's see if we quit maximized the last time, restore that */ - if (_window_maximize) { - ShowWindow(_wnd.main_wnd, SW_MAXIMIZE); - _window_maximize = false; - } } } GameSizeChanged(); // invalidate all windows, force redraw -- cgit v1.2.3-54-g00ecf