diff --git a/PowerEditor/src/ScitillaComponent/FindReplaceDlg.cpp b/PowerEditor/src/ScitillaComponent/FindReplaceDlg.cpp index d7e661fa0..b952e2784 100644 --- a/PowerEditor/src/ScitillaComponent/FindReplaceDlg.cpp +++ b/PowerEditor/src/ScitillaComponent/FindReplaceDlg.cpp @@ -3193,7 +3193,10 @@ int Progress::createProgressWindow() RECT Progress::adjustSizeAndPos(int width, int height) { RECT maxWin; - ::GetWindowRect(::GetDesktopWindow(), &maxWin); + maxWin.left = ::GetSystemMetrics(SM_XVIRTUALSCREEN); + maxWin.top = ::GetSystemMetrics(SM_YVIRTUALSCREEN); + maxWin.right = ::GetSystemMetrics(SM_CXVIRTUALSCREEN) + maxWin.left; + maxWin.bottom = ::GetSystemMetrics(SM_CYVIRTUALSCREEN) + maxWin.top; POINT center; @@ -3223,9 +3226,14 @@ RECT Progress::adjustSizeAndPos(int width, int height) if (width < maxWin.right - maxWin.left) { win.left = center.x - width / 2; - if (win.left < 0) - win.left = 0; + if (win.left < maxWin.left) + win.left = maxWin.left; win.right = win.left + width; + if (win.right > maxWin.right) + { + win.right = maxWin.right; + win.left = win.right - width; + } } else { @@ -3236,9 +3244,14 @@ RECT Progress::adjustSizeAndPos(int width, int height) if (height < maxWin.bottom - maxWin.top) { win.top = center.y - height / 2; - if (win.top < 0) - win.top = 0; + if (win.top < maxWin.top) + win.top = maxWin.top; win.bottom = win.top + height; + if (win.bottom > maxWin.bottom) + { + win.bottom = maxWin.bottom; + win.top = win.bottom - height; + } } else {