X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5a7d70fe8922a56407a5b02b95a53fb16e787f70..11dbb4bfab8f7441e87b34cd094ac6e69438b50a:/src/mac/carbon/notebmac.cpp diff --git a/src/mac/carbon/notebmac.cpp b/src/mac/carbon/notebmac.cpp index dbea2f1022..28e18d9174 100644 --- a/src/mac/carbon/notebmac.cpp +++ b/src/mac/carbon/notebmac.cpp @@ -13,12 +13,17 @@ #if wxUSE_NOTEBOOK -#include "wx/app.h" +#include "wx/notebook.h" + +#ifndef WX_PRECOMP + #include "wx/string.h" + #include "wx/log.h" + #include "wx/app.h" +#endif + #include "wx/string.h" -#include "wx/log.h" #include "wx/imaglist.h" #include "wx/image.h" -#include "wx/notebook.h" #include "wx/mac/uma.h" @@ -96,18 +101,18 @@ bool wxNotebook::Create( wxWindow *parent, ControlTabSize tabsize; switch (GetWindowVariant()) { - case wxWINDOW_VARIANT_MINI: + case wxWINDOW_VARIANT_MINI: if ( UMAGetSystemVersion() >= 0x1030 ) tabsize = 3 ; else tabsize = kControlSizeSmall; break; - case wxWINDOW_VARIANT_SMALL: + case wxWINDOW_VARIANT_SMALL: tabsize = kControlTabSizeSmall; break; - default: + default: tabsize = kControlTabSizeLarge; break; } @@ -322,7 +327,13 @@ int wxNotebook::HitTest(const wxPoint& pt, long * flags) const #if TARGET_API_MAC_OSX const int countPages = GetPageCount(); - HIPoint hipoint = { pt.x , pt.y } ; + // we have to convert from Client to Window relative coordinates + wxPoint adjustedPt = pt + GetClientAreaOrigin(); + // and now to HIView native ones + adjustedPt.x -= MacGetLeftBorderSize() ; + adjustedPt.y -= MacGetTopBorderSize() ; + + HIPoint hipoint= { adjustedPt.x , adjustedPt.y } ; HIViewPartCode outPart = 0 ; OSStatus err = HIViewGetPartHit( m_peer->GetControlRef(), &hipoint, &outPart ); @@ -353,7 +364,7 @@ int wxNotebook::HitTest(const wxPoint& pt, long * flags) const } if ( outPart >= 1 && outPart <= countPages ) - resultV = outPart ; + resultV = outPart - 1 ; #endif // TARGET_API_MAC_OSX if (flags != NULL) @@ -361,7 +372,7 @@ int wxNotebook::HitTest(const wxPoint& pt, long * flags) const *flags = 0; // we cannot differentiate better - if (resultV >= 1) + if (resultV >= 0) *flags |= wxNB_HITTEST_ONLABEL; else *flags |= wxNB_HITTEST_NOWHERE;