From a8d4ce3881103e46234f5476d4937b7dbd04d34c Mon Sep 17 00:00:00 2001 From: cxl Date: Sun, 25 Aug 2013 09:39:33 +0000 Subject: [PATCH] CtrlCore: Fixed issue with X11Top.cpp (thanks Klugier) git-svn-id: svn://ultimatepp.org/upp/trunk@6264 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlCore/X11Top.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/uppsrc/CtrlCore/X11Top.cpp b/uppsrc/CtrlCore/X11Top.cpp index 8ac532db9..c46986905 100644 --- a/uppsrc/CtrlCore/X11Top.cpp +++ b/uppsrc/CtrlCore/X11Top.cpp @@ -239,18 +239,20 @@ void TopWindow::CenterRect(Ctrl *owner) r = wr; Point p = r.CenterPos(sz); r = RectC(p.x, p.y, sz.cx, sz.cy); - wr.left += fm.left; - wr.right -= fm.right; - wr.top += fm.top; - wr.bottom -= fm.bottom; - if(r.top < wr.top) { - r.bottom += wr.top - r.top; - r.top = wr.top; + if (p.x <= wr.Width() && p.y <= wr.Height()) { + wr.left += fm.left; + wr.right -= fm.right; + wr.top += fm.top; + wr.bottom -= fm.bottom; + if(r.top < wr.top) { + r.bottom += wr.top - r.top; + r.top = wr.top; + } + if(r.bottom > wr.bottom) + r.bottom = wr.bottom; + minsize.cx = min(minsize.cx, r.GetWidth()); + minsize.cy = min(minsize.cy, r.GetHeight()); } - if(r.bottom > wr.bottom) - r.bottom = wr.bottom; - minsize.cx = min(minsize.cx, r.GetWidth()); - minsize.cy = min(minsize.cy, r.GetHeight()); SetRect(r); } }