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);