(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.
authorrubidium
Wed, 13 Aug 2008 19:09:27 +0000
changeset 9917 1816159a6b8e
parent 9916 40b0040c754b
child 9918 091fd8381674
(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.
src/video/win32_v.cpp
--- a/src/video/win32_v.cpp	Wed Aug 13 14:52:54 2008 +0000
+++ b/src/video/win32_v.cpp	Wed Aug 13 19:09:27 2008 +0000
@@ -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