reapack

Package manager for REAPER
Log | Files | Refs | Submodules | README | LICENSE

commit 6fb571ab22dae10f9acb7fa7686f1cbf676958e0
parent 89ee236fc724739b16dca7fdeb115353d59fb9a5
Author: cfillion <cfillion@users.noreply.github.com>
Date:   Wed, 29 Jun 2016 17:10:02 -0700

dialog: refactor previous commit (89ee236fc724739b16dca7fdeb115353d59fb9a5)

Diffstat:
Msrc/dialog.cpp | 24+++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/src/dialog.cpp b/src/dialog.cpp @@ -246,22 +246,24 @@ void Dialog::boundedMove(int x, int y) const int width = rect.right - rect.left, height = rect.bottom - rect.top; #ifdef SM_XVIRTUALSCREEN - const int screenX = GetSystemMetrics(SM_XVIRTUALSCREEN); - const int screenWidth = GetSystemMetrics(SM_CXVIRTUALSCREEN) - abs(screenX); - const int screenY = GetSystemMetrics(SM_YVIRTUALSCREEN); - const int screenHeight = GetSystemMetrics(SM_CYVIRTUALSCREEN) - abs(screenY); -#else // for SWELL + // virtual screen = all screens combined + const int viewportX = GetSystemMetrics(SM_XVIRTUALSCREEN); + const int viewportWidth = GetSystemMetrics(SM_CXVIRTUALSCREEN); + const int viewportY = GetSystemMetrics(SM_YVIRTUALSCREEN); + const int viewportHeight = GetSystemMetrics(SM_CYVIRTUALSCREEN); +#else + // SWELL_GetViewPort only gives the rect of the current screen RECT viewport; SWELL_GetViewPort(&viewport, &rect, false); - const int screenX = viewport.left; - const int screenWidth = viewport.right - abs(screenX); - const int screenY = viewport.top; - const int screenHeight = viewport.bottom - abs(screenY); + const int viewportX = viewport.left; + const int viewportWidth = viewport.right; + const int viewportY = viewport.top; + const int viewportHeight = viewport.bottom; #endif - x = min(max(screenX, x), screenWidth - width); - y = min(max(screenY, y), screenHeight - height); + x = min(max(viewportX, x), viewportWidth - width - abs(viewportX)); + y = min(max(viewportY, y), viewportHeight - height - abs(viewportY)); SetWindowPos(m_handle, nullptr, x, y, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);