From: Stefan Csomor Date: Wed, 23 Feb 2005 15:48:52 +0000 (+0000) Subject: carbon cfm fixes X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/23ad132ca3c6a24adab549e21d9cfc30ddc80e6d carbon cfm fixes git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/mac/carbon/toplevel.cpp b/src/mac/carbon/toplevel.cpp index fac851267e..4af012f7d6 100644 --- a/src/mac/carbon/toplevel.cpp +++ b/src/mac/carbon/toplevel.cpp @@ -545,9 +545,13 @@ pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , Ev // if built-in find control is finding the wrong control (ie static box instead of overlaid // button, we cannot let the standard handler do its job, but must handle manually - if ( ( cEvent.GetKind() == kEventMouseDown ) && + if ( ( cEvent.GetKind() == kEventMouseDown ) +#ifdef __WXMAC_OSX__ + && (FindControlUnderMouse(windowMouseLocation , window , &dummyPart) != - wxMacFindControlUnderMouse( windowMouseLocation , window , &dummyPart ) ) ) + wxMacFindControlUnderMouse( windowMouseLocation , window , &dummyPart ) ) +#endif + ) { if ( currentMouseWindow->MacIsReallyEnabled() ) { @@ -1125,7 +1129,7 @@ void wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title, wxAssociateWinWithMacWindow( (WindowRef) m_macWindow , this ) ; UMASetWTitle( (WindowRef) m_macWindow , title , m_font.GetEncoding() ) ; - m_peer = new wxMacControl() ; + m_peer = new wxMacControl(this) ; #if TARGET_API_MAC_OSX // There is a bug in 10.2.X for ::GetRootControl returning the window view instead of // the content view, so we have to retrieve it explicitely diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index c20126d12c..6139d8a3e1 100644 --- a/src/mac/carbon/utils.cpp +++ b/src/mac/carbon/utils.cpp @@ -1024,6 +1024,7 @@ void wxMacControl::SetDrawingEnabled( bool enable ) #endif } +#if TARGET_API_MAC_OSX bool wxMacControl::GetNeedsDisplay() const { #if TARGET_API_MAC_OSX @@ -1042,6 +1043,7 @@ void wxMacControl::SetNeedsDisplay( bool needsDisplay , RgnHandle where ) HIViewSetNeedsDisplay( m_controlRef , needsDisplay ) ; #endif } +#endif void wxMacControl::Convert( wxPoint *pt , wxMacControl *from , wxMacControl *to ) { @@ -1052,6 +1054,21 @@ void wxMacControl::Convert( wxPoint *pt , wxMacControl *from , wxMacControl *to HIViewConvertPoint( &hiPoint , from->m_controlRef , to->m_controlRef ) ; pt->x = (int)hiPoint.x ; pt->y = (int)hiPoint.y ; +#else + Rect fromRect ; + Rect toRect ; + from->GetRect( &fromRect ) ; + to->GetRect( &toRect ) ; + + // correct the case of the root control + if ( fromRect.left == -32768 && fromRect.top == -32768 && fromRect.bottom == 32767 && fromRect.right == 32767) + fromRect.left = fromRect.top = 0 ; + + if ( toRect.left == -32768 && toRect.top == -32768 && toRect.bottom == 32767 && toRect.right == 32767 ) + toRect.left = toRect.top = 0 ; + + pt->x = pt->x + fromRect.left - toRect.left ; + pt->y = pt->y + fromRect.top - toRect.top ; #endif }