mirror of https://github.com/OpenTTD/OpenTTD
(svn r7060) -Fix (r5874): Restore of window maximized state not always working (Mart3p) . Remember
maximize state even between switching fullscreen/windowed mode.release/0.5
parent
605e6d75af
commit
20da2356a9
|
@ -255,7 +255,6 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
||||||
|
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
HandleExitGameRequest();
|
HandleExitGameRequest();
|
||||||
_window_maximize = IsZoomed(_wnd.main_wnd);
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case WM_LBUTTONDOWN:
|
case WM_LBUTTONDOWN:
|
||||||
|
@ -390,6 +389,9 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
||||||
|
|
||||||
case WM_SIZE:
|
case WM_SIZE:
|
||||||
if (wParam != SIZE_MINIMIZED) {
|
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));
|
ClientSizeChanged(LOWORD(lParam), HIWORD(lParam));
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -557,6 +559,8 @@ static void MakeWindow(bool full_screen)
|
||||||
SetRect(&r, 0, 0, _wnd.width_org, _wnd.height_org);
|
SetRect(&r, 0, 0, _wnd.width_org, _wnd.height_org);
|
||||||
} else {
|
} else {
|
||||||
style = WS_OVERLAPPEDWINDOW | WS_VISIBLE;
|
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);
|
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);
|
_wnd.main_wnd = CreateWindow("OTTD", Windowtitle, style, x, y, w, h, 0, 0, GetModuleHandle(NULL), 0);
|
||||||
if (_wnd.main_wnd == NULL) error("CreateWindow failed");
|
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
|
GameSizeChanged(); // invalidate all windows, force redraw
|
||||||
|
|
Loading…
Reference in New Issue