fix bugs in the last changes to min and max size handling, fixes #9947

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2008-09-11 16:26:47 +00:00
parent ffa9db0d2a
commit f71d8b3de0

View File

@@ -837,19 +837,24 @@ wxNonOwnedWindowEventHandler(EventHandlerCallRef WXUNUSED(handler),
if ( (attributes & kWindowBoundsChangeSizeChanged) || (attributes & kWindowBoundsChangeOriginChanged) )
{
// all (Mac) rects are in content area coordinates, all wxRects in structure coordinates
int left , top , right , bottom ;
toplevelWindow->GetNonOwnedPeer()->GetContentArea(left, top, right, bottom);
int left , top , width , height ;
// structure width
int swidth, sheight;
toplevelWindow->GetNonOwnedPeer()->GetContentArea(left, top, width, height);
toplevelWindow->GetNonOwnedPeer()->GetSize(swidth, sheight);
int deltawidth = swidth - width;
int deltaheight = sheight - height;
wxRect adjustR(
newRect.left - left,
newRect.top - top,
newRect.right - newRect.left + left + right,
newRect.bottom - newRect.top + top + bottom ) ;
newRect.right - newRect.left + deltawidth,
newRect.bottom - newRect.top + deltaheight ) ;
toplevelWindow->HandleResizing( cEvent.GetTicks(), &adjustR );
const Rect adjustedRect = { adjustR.y + top , adjustR.x + left , adjustR.y + adjustR.height - bottom , adjustR.x + adjustR.width - right } ;
const Rect adjustedRect = { adjustR.y + top , adjustR.x + left , adjustR.y + top + adjustR.height - deltaheight ,
adjustR.x + left + adjustR.width - deltawidth } ;
if ( !EqualRect( &newRect , &adjustedRect ) )
cEvent.SetParameter<Rect>( kEventParamCurrentBounds , &adjustedRect ) ;
}