From d533f4848830d2c85b2e81e5a66d83db1f9f32f0 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Sun, 6 Apr 2003 00:00:52 +0000 Subject: Move method for Rectangle class. Ensure windows that are moved are not moved off screen to the top or left. --- win32/PlatWin.cxx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'win32') diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx index 09bf83ded..d2b88bda3 100644 --- a/win32/PlatWin.cxx +++ b/win32/PlatWin.cxx @@ -769,10 +769,13 @@ void Window::SetPositionRelative(PRectangle rc, Window w) { if (style & WS_POPUP) { RECT rcOther; ::GetWindowRect(reinterpret_cast(w.GetID()), &rcOther); - rc.top += rcOther.top; - rc.left += rcOther.left; - rc.bottom += rcOther.top; - rc.right += rcOther.left; + rc.Move(rcOther.left, rcOther.top); + if (rc.left < 0) { + rc.Move(-rc.left,0); + } + if (rc.top < 0) { + rc.Move(0,-rc.top); + } } SetPosition(rc); } -- cgit v1.2.3