X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/980ee83f63d19f8c7fb3ada5f77a1fec36e8dec1..61f0bec0cd812de8ed7e50dff6a269043e49c7a2:/src/mac/carbon/toplevel.cpp diff --git a/src/mac/carbon/toplevel.cpp b/src/mac/carbon/toplevel.cpp index e4405c5492..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 ; @@ -723,12 +725,7 @@ static pascal OSStatus wxMacTopLevelWindowEventHandler( EventHandlerCallRef hand wxFrame *frame = wxDynamicCast( toplevelWindow , wxFrame ) ; if ( frame ) { -#if wxUSE_STATUSBAR - frame->PositionStatusBar(); -#endif -#if wxUSE_TOOLBAR - frame->PositionToolBar(); -#endif + frame->PositionBars(); } wxSizeEvent event( r.GetSize() , toplevelWindow->GetId() ) ;