From 6869f387baddc6a3d75916a4c5448dca177f1b4c Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sun, 11 Jun 2023 12:00:02 +0200 Subject: [PATCH] Fix 07add7a9: [Win32] use full monitor resolution for fullscreen (#10985) On Windows in fullscreen you cannot reach the top with the cursor for the halve of the height of your toolbar. Additionally, on Win10 in fullscreen you can see the actual toolbar. --- src/video/win32_v.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index d92fe0079a..cf260c2508 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -212,13 +212,18 @@ bool VideoDriver_Win32Base::MakeWindow(bool full_screen, bool resize) if (this->main_wnd != nullptr) { if (!_window_maximize && resize) SetWindowPos(this->main_wnd, 0, 0, 0, w, h, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOZORDER | SWP_NOMOVE); } else { - /* Center on the workspace of the primary display. */ - MONITORINFO mi; - mi.cbSize = sizeof(mi); - GetMonitorInfo(MonitorFromWindow(0, MONITOR_DEFAULTTOPRIMARY), &mi); + int x = 0; + int y = 0; - int x = (mi.rcWork.right - mi.rcWork.left - w) / 2; - int y = (mi.rcWork.bottom - mi.rcWork.top - h) / 2; + /* For windowed mode, center on the workspace of the primary display. */ + if (!this->fullscreen) { + MONITORINFO mi; + mi.cbSize = sizeof(mi); + GetMonitorInfo(MonitorFromWindow(0, MONITOR_DEFAULTTOPRIMARY), &mi); + + x = (mi.rcWork.right - mi.rcWork.left - w) / 2; + y = (mi.rcWork.bottom - mi.rcWork.top - h) / 2; + } std::string caption = VideoDriver::GetCaption(); this->main_wnd = CreateWindow(L"OTTD", OTTD2FS(caption).c_str(), style, x, y, w, h, 0, 0, GetModuleHandle(nullptr), this);