diff --git a/src/mac/carbon/toplevel.cpp b/src/mac/carbon/toplevel.cpp index d41ae760f0..c4914ac596 100644 --- a/src/mac/carbon/toplevel.cpp +++ b/src/mac/carbon/toplevel.cpp @@ -521,15 +521,6 @@ pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , Ev cursorPoint += cursorTarget->GetPosition() ; } - // update focus - - if ( wxevent.GetEventType() == wxEVT_LEFT_DOWN ) - { - // set focus to this window - if (currentMouseWindow->AcceptsFocus() && wxWindow::FindFocus()!=currentMouseWindow) - currentMouseWindow->SetFocus(); - } - // make tooltips current #if wxUSE_TOOLTIPS @@ -542,6 +533,15 @@ pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , Ev result = noErr; else { + // if the user code did _not_ handle the event, then perform the + // default processing + if ( wxevent.GetEventType() == wxEVT_LEFT_DOWN ) + { + // ... that is set focus to this window + if (currentMouseWindow->AcceptsFocus() && wxWindow::FindFocus()!=currentMouseWindow) + currentMouseWindow->SetFocus(); + } + ControlPartCode dummyPart ; // 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