]> git.saurik.com Git - wxWidgets.git/commitdiff
fix bugs in the last changes to min and max size handling, fixes #9947
authorStefan Csomor <csomor@advancedconcepts.ch>
Thu, 11 Sep 2008 16:26:47 +0000 (16:26 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Thu, 11 Sep 2008 16:26:47 +0000 (16:26 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55556 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/osx/carbon/nonownedwnd.cpp

index 7f0cbbdc9b720066ec75e1293b1dcf38be53827d..2fe95a95cc88da6294c08e90ff9372c38893d5fd 100644 (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 ) ;
             }