X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f02a879ed7efc5fcf6328ff47a1352ec82812b7..2353544718a1aff4e12c75c823aa4136d2304027:/src/mac/carbon/toplevel.cpp diff --git a/src/mac/carbon/toplevel.cpp b/src/mac/carbon/toplevel.cpp index 1857828a62..c4cd59574e 100644 --- a/src/mac/carbon/toplevel.cpp +++ b/src/mac/carbon/toplevel.cpp @@ -497,6 +497,10 @@ pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , Ev #endif } } + + // disabled windows must not get any input messages + if ( currentMouseWindow && !currentMouseWindow->MacIsReallyEnabled() ) + currentMouseWindow = NULL; } } @@ -561,9 +565,7 @@ pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , Ev // make tooltips current #if wxUSE_TOOLTIPS - if ( wxevent.GetEventType() == wxEVT_MOTION - || wxevent.GetEventType() == wxEVT_ENTER_WINDOW - || wxevent.GetEventType() == wxEVT_LEAVE_WINDOW ) + if ( wxevent.GetEventType() == wxEVT_MOTION ) wxToolTip::RelayEvent( currentMouseWindow , wxevent ); #endif @@ -638,8 +640,8 @@ pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , Ev cursorPoint += cursorTarget->GetPosition(); } - } // else if ( currentMouseWindow ) - else + } + else // currentMouseWindow == NULL { // don't mess with controls we don't know about // for some reason returning eventNotHandledErr does not lead to the correct behaviour @@ -648,17 +650,17 @@ pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , Ev { EventModifiers modifiers = cEvent.GetParameter(kEventParamKeyModifiers, typeUInt32) ; Point clickLocation = windowMouseLocation ; +#if TARGET_API_MAC_OSX if ( toplevelWindow->MacUsesCompositing() ) { -#ifdef __WXMAC_OSX__ HIPoint hiPoint ; hiPoint.x = clickLocation.h ; hiPoint.y = clickLocation.v ; HIViewConvertPoint( &hiPoint , (ControlRef) toplevelWindow->GetHandle() , control ) ; clickLocation.h = (int)hiPoint.x ; clickLocation.v = (int)hiPoint.y ; -#endif } +#endif // TARGET_API_MAC_OSX HandleControlClick( control , clickLocation , modifiers , (ControlActionUPP ) -1 ) ; result = noErr ;