X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3d1a4878f36ba4b5f66c2ccfd2cb27a9dc528b6f..1b5bee64fda0bbabe4234aa7143c3d6de4496149:/src/mac/carbon/uma.cpp?ds=sidebyside diff --git a/src/mac/carbon/uma.cpp b/src/mac/carbon/uma.cpp index 9f577b30f5..bf940a280d 100644 --- a/src/mac/carbon/uma.cpp +++ b/src/mac/carbon/uma.cpp @@ -194,7 +194,7 @@ long UMAGetProcessMode() ProcessInfoRec processinfo; ProcessSerialNumber procno ; - procno.highLongOfPSN = NULL ; + procno.highLongOfPSN = 0 ; procno.lowLongOfPSN = kCurrentProcess ; processinfo.processInfoLength = sizeof(ProcessInfoRec); processinfo.processName = NULL; @@ -790,34 +790,18 @@ OSStatus UMAPutScrap( Size size , OSType type , void *data ) Rect* UMAGetControlBoundsInWindowCoords(ControlRef theControl, Rect *bounds) { - wxWindow* win = wxFindControlFromMacControl( theControl ) ; +// wxWindow* win = wxFindControlFromMacControl( theControl ) ; 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 ) ; + wxWindow* tlwwx = (wxWindow*) wxFindWinFromMacWindow( tlwref ) ; + 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 ; }