// 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() )
{
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
#endif
}
+#if TARGET_API_MAC_OSX
bool wxMacControl::GetNeedsDisplay() const
{
#if TARGET_API_MAC_OSX
HIViewSetNeedsDisplay( m_controlRef , needsDisplay ) ;
#endif
}
+#endif
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
}