X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a76342da418c75ead546ce2025db24dad261d237..9f391ae1547bec52bbe31eec0ba77be9ed558a32:/src/mac/carbon/uma.cpp diff --git a/src/mac/carbon/uma.cpp b/src/mac/carbon/uma.cpp index 3e60338538..ba57727478 100644 --- a/src/mac/carbon/uma.cpp +++ b/src/mac/carbon/uma.cpp @@ -9,7 +9,7 @@ // Licence: The wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#include "wx/defs.h" +#include "wx/wxprec.h" #if wxUSE_GUI @@ -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; @@ -796,15 +796,27 @@ Rect* UMAGetControlBoundsInWindowCoords(ControlRef theControl, Rect *bounds) #if TARGET_API_MAC_OSX if ( win != NULL && win->MacGetTopLevelWindow() != NULL ) { - int x , y ; - x = 0 ; - y = 0 ; - - win->GetParent()->MacWindowToRootWindow( &x , & y ) ; - bounds->left += x ; - bounds->right += x ; - bounds->top += y ; - bounds->bottom += y ; + 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 ; + } } #endif return bounds ;