From 7c4c9e6ce92f603ac2186943b720a1aa59c5a60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lavoie?= Date: Wed, 8 Apr 2020 21:44:17 -0400 Subject: [PATCH] Fix error tooltip position on multi-screen systems --- BeefySysLib/platform/win/WinBFApp.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/BeefySysLib/platform/win/WinBFApp.cpp b/BeefySysLib/platform/win/WinBFApp.cpp index b5a19c7a..b1b4e2aa 100644 --- a/BeefySysLib/platform/win/WinBFApp.cpp +++ b/BeefySysLib/platform/win/WinBFApp.cpp @@ -1131,7 +1131,19 @@ void WinBFApp::GetDesktopResolution(int& width, int& height) void WinBFApp::GetWorkspaceRect(int& x, int& y, int& width, int& height) { RECT desktopRect; - ::SystemParametersInfo(SPI_GETWORKAREA, NULL, &desktopRect, NULL); + + if (::GetSystemMetrics(SM_CMONITORS) > 1) + { + desktopRect.left = ::GetSystemMetrics(SM_XVIRTUALSCREEN); + desktopRect.right = ::GetSystemMetrics(SM_CXVIRTUALSCREEN); + desktopRect.top = ::GetSystemMetrics(SM_YVIRTUALSCREEN); + desktopRect.bottom = ::GetSystemMetrics(SM_CYVIRTUALSCREEN); + } + else + { + ::SystemParametersInfo(SPI_GETWORKAREA, NULL, &desktopRect, NULL); + } + x = desktopRect.left; y = desktopRect.top; width = desktopRect.right - desktopRect.left;