https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f981a68ee06749aff831a6...
commit f981a68ee06749aff831a6e80008e7ffacfe72a4 Author: Katayma Hirofumi MZ katayama.hirofumi.mz@gmail.com AuthorDate: Sat Nov 16 12:52:40 2019 +0900 Commit: Katayma Hirofumi MZ katayama.hirofumi.mz@gmail.com CommitDate: Sat Nov 16 12:52:40 2019 +0900
[USER32] Improve DM_REPOSITION CORE-16490 --- win32ss/user/user32/windows/dialog.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/win32ss/user/user32/windows/dialog.c b/win32ss/user/user32/windows/dialog.c index 3a88800a810..09879a74789 100644 --- a/win32ss/user/user32/windows/dialog.c +++ b/win32ss/user/user32/windows/dialog.c @@ -1185,39 +1185,37 @@ static void DEFDLG_Reposition(HWND hwnd) HMONITOR hMon; MONITORINFO mi = { sizeof(mi) }; RECT rc; - SIZE siz; + LONG cx, cy;
if (GetWindowLongW(hwnd, GWL_STYLE) & WS_CHILD) return;
- hMon = MonitorFromWindow(hwnd, MONITOR_DEFAULTTOPRIMARY); + hMon = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST);
if (!GetMonitorInfoW(hMon, &mi) || !GetWindowRect(hwnd, &rc)) return;
- siz.cx = rc.right - rc.left; - siz.cy = rc.bottom - rc.top; + cx = rc.right - rc.left; + cy = rc.bottom - rc.top;
if (rc.right > mi.rcWork.right) { rc.right = mi.rcWork.right; - rc.left = rc.right - siz.cx; + rc.left = rc.right - cx; } if (rc.bottom > mi.rcWork.bottom - 4) { rc.bottom = mi.rcWork.bottom - 4; - rc.top = rc.bottom - siz.cy; + rc.top = rc.bottom - cy; }
if (rc.left < mi.rcWork.left) { rc.left = mi.rcWork.left; - rc.right = rc.left + siz.cx; } if (rc.top < mi.rcWork.top) { rc.top = mi.rcWork.top; - rc.bottom = rc.top + siz.cy; }
SetWindowPos(hwnd, NULL, rc.left, rc.top, 0, 0,