// Licence: The wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#include "wx/defs.h"
+#include "wx/wxprec.h"
#if wxUSE_GUI
#endif
#include "wx/mac/uma.h"
+#if TARGET_API_MAC_OSX
+#include "wx/toplevel.h"
+#endif
// since we have decided that we only support 8.6 upwards we are
// checking for these minimum requirements in the startup code of
ProcessInfoRec processinfo;
ProcessSerialNumber procno ;
- procno.highLongOfPSN = NULL ;
+ procno.highLongOfPSN = 0 ;
procno.lowLongOfPSN = kCurrentProcess ;
processinfo.processInfoLength = sizeof(ProcessInfoRec);
processinfo.processName = NULL;
Rect* UMAGetControlBoundsInWindowCoords(ControlRef theControl, Rect *bounds)
{
- wxWindow* win = wxFindControlFromMacControl( theControl ) ;
-
GetControlBounds( theControl , bounds ) ;
#if TARGET_API_MAC_OSX
- if ( win != NULL && win->MacGetTopLevelWindow() != NULL )
+ WindowRef tlwref = GetControlOwner( theControl ) ;
+
+ wxTopLevelWindowMac* tlwwx = wxFindWinFromMacWindow( tlwref ) ;
+ if ( tlwwx != NULL && tlwwx->MacUsesCompositing() )
{
- 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 ;
- }
+ ControlRef rootControl = tlwwx->GetPeer()->GetControlRef() ;
+ HIPoint hiPoint = CGPointMake( 0 , 0 ) ;
+ HIViewConvertPoint( &hiPoint , HIViewGetSuperview(theControl) , rootControl ) ;
+ OffsetRect( bounds , (short) hiPoint.x , (short) hiPoint.y ) ;
}
#endif
return bounds ;