(svn r7060) -Fix (r5874): Restore of window maximized state not always working (Mart3p) . Remember

maximize state even between switching fullscreen/windowed mode.
This commit is contained in:
Darkvater 2006-11-05 01:09:57 +00:00
parent 915906aebf
commit 7e8576bfaf

View File

@ -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