diff options
-rw-r--r-- | settings.c | 3 | ||||
-rw-r--r-- | video/win32_v.c | 12 |
2 files changed, 12 insertions, 3 deletions
diff --git a/settings.c b/settings.c index 5e7faae11..848d8d699 100644 --- a/settings.c +++ b/settings.c @@ -1157,7 +1157,7 @@ static const SettingDesc _music_settings[] = { /* win32_v.c only settings */ #ifdef WIN32 -extern bool _force_full_redraw, _double_size; +extern bool _force_full_redraw, _double_size, _window_maximize; extern uint _display_hz, _fullscreen_bpp; static const SettingDescGlobVarList _win32_settings[] = { @@ -1165,6 +1165,7 @@ static const SettingDescGlobVarList _win32_settings[] = { SDTG_BOOL("force_full_redraw", S, 0, _force_full_redraw,false, STR_NULL, NULL), SDTG_VAR("fullscreen_bpp", SLE_UINT, S, 0, _fullscreen_bpp, 8, 8, 32, STR_NULL, NULL), SDTG_BOOL("double_size", S, 0, _double_size, false, STR_NULL, NULL), + SDTG_BOOL("window_maximize", S, 0, _window_maximize, false, STR_NULL, NULL), SDTG_END() }; #endif /* WIN32 */ diff --git a/video/win32_v.c b/video/win32_v.c index 7f05406c3..4d25b6e65 100644 --- a/video/win32_v.c +++ b/video/win32_v.c @@ -29,6 +29,7 @@ static struct { bool _force_full_redraw; bool _double_size; +bool _window_maximize; uint _display_hz; uint _fullscreen_bpp; @@ -265,6 +266,7 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP } else { AskExitGame(); } + _window_maximize = IsZoomed(_wnd.main_wnd); return 0; case WM_LBUTTONDOWN: @@ -565,6 +567,7 @@ static void MakeWindow(bool full_screen) y = (GetSystemMetrics(SM_CYSCREEN) - h) / 2; if (_wnd.main_wnd) { + ShowWindow(_wnd.main_wnd, SW_SHOWNORMAL); // remove maximize-flag SetWindowPos(_wnd.main_wnd, 0, x, y, w, h, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOZORDER); } else { char Windowtitle[50]; @@ -572,8 +575,13 @@ static void MakeWindow(bool full_screen) snprintf(Windowtitle, lengthof(Windowtitle), "OpenTTD %s", _openttd_revision); _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 |