changeset 9917:e9de0ed93866 draft

(svn r14071) -Fix [FS#2057]: the screen wouldn't be centered on Windows multimonitor systems if the first monitor is right of the second one.
author rubidium <rubidium@openttd.org>
date Wed, 13 Aug 2008 19:09:27 +0000
parents fa925e28f10e
children 26796d239b04
files src/video/win32_v.cpp
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/video/win32_v.cpp
+++ b/src/video/win32_v.cpp
@@ -18,6 +18,12 @@
 #include <windows.h>
 #include <tchar.h>
 
+/** Only MSVC has this header, MinGW supplies the required constants itself */
+#ifdef _MSC_VER
+# define COMPILE_MULTIMON_STUBS
+# include <multimon.h>
+#endif /* _MSC_VER */
+
 static struct {
 	HWND main_wnd;
 	HBITMAP dib_sect;
@@ -280,8 +286,8 @@
 #endif
 		w = r.right - r.left;
 		h = r.bottom - r.top;
-		x = (GetSystemMetrics(SM_CXSCREEN) - w) / 2;
-		y = (GetSystemMetrics(SM_CYSCREEN) - h) / 2;
+		x = ((GetSystemMetrics(SM_CXVIRTUALSCREEN) - w) / 2) - GetSystemMetrics(SM_XVIRTUALSCREEN);
+		y = ((GetSystemMetrics(SM_CYVIRTUALSCREEN) - h) / 2) - GetSystemMetrics(SM_YVIRTUALSCREEN);
 
 		if (_wnd.main_wnd) {
 			ShowWindow(_wnd.main_wnd, SW_SHOWNORMAL); // remove maximize-flag