From: Stefan Csomor Date: Thu, 24 Feb 2005 14:07:55 +0000 (+0000) Subject: making implementation independent of a wx-peer of that control X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/37d0bfa8756716ac456879bd64c57ec27fe20be5 making implementation independent of a wx-peer of that control git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32343 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/mac/carbon/uma.cpp b/src/mac/carbon/uma.cpp index ba57727478..1c31083085 100644 --- a/src/mac/carbon/uma.cpp +++ b/src/mac/carbon/uma.cpp @@ -794,30 +794,14 @@ Rect* UMAGetControlBoundsInWindowCoords(ControlRef theControl, Rect *bounds) GetControlBounds( theControl , bounds ) ; #if TARGET_API_MAC_OSX - if ( win != NULL && win->MacGetTopLevelWindow() != NULL ) - { - wxWindow* parent = win->GetParent() ; - if ( parent ) - { - // the parent controls 'origin' expressed in its own - // window coordinates (explanation in window.cpp) - int x , y ; - x = 0 ; - y = 0 ; - - if ( !parent->IsTopLevel() ) - { - x += parent->MacGetLeftBorderSize() ; - y += parent->MacGetTopBorderSize() ; - } - - parent->MacWindowToRootWindow( &x , & y ) ; - bounds->left += x ; - bounds->right += x ; - bounds->top += y ; - bounds->bottom += y ; - } - } + WindowRef tlwref = GetControlOwner( theControl ) ; + wxTopLevelWindowMac* tlwwx = wxFindWinFromMacWindow( tlwref ) ; + ControlRef rootControl = tlwwx->GetPeer()->GetControlRef() ; + + HIPoint hiPoint = CGPointMake( 0 , 0 ) ; + + HIViewConvertPoint( &hiPoint , HIViewGetSuperview(theControl) , rootControl ) ; + OffsetRect( bounds , hiPoint.x , hiPoint.y ) ; #endif return bounds ; }