From: Vadim Zeitlin Date: Tue, 20 Mar 2007 12:56:53 +0000 (+0000) Subject: don't offset the window being centered more than strictly necessary for it to be... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ca08b543ec61bbec3b4652993db6cb776499f641 don't offset the window being centered more than strictly necessary for it to be on screen (replaces patch 1683239) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/toplvcmn.cpp b/src/common/toplvcmn.cpp index 2b20827bc1..f090433b40 100644 --- a/src/common/toplvcmn.cpp +++ b/src/common/toplvcmn.cpp @@ -231,7 +231,7 @@ void wxTopLevelWindowBase::DoCentre(int dir) if ( rectParent.IsEmpty() ) { - // we were explicitely asked to centre this window on the entire screen + // we were explicitly asked to centre this window on the entire screen // or if we have no parent anyhow and so can't centre on it rectParent = rectDisplay; } @@ -250,11 +250,11 @@ void wxTopLevelWindowBase::DoCentre(int dir) { if ( !rectDisplay.Contains(rect.GetBottomRight()) ) { - // check if we can move the window so that the bottom right corner - // is visible without hiding the top left one + // move the window just enough for the bottom right corner to + // become visible int dx = rectDisplay.GetRight() - rect.GetRight(); int dy = rectDisplay.GetBottom() - rect.GetBottom(); - rect.Offset(dx, dy); + rect.Offset(dx < 0 ? dx : 0, dy < 0 ? dy : 0); } //else: the window top left and bottom right corner are both visible, // although the window might still be not entirely on screen (with