X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7c9955d147ed92cdd79d795ed94d6e03fca06a52..f7f78039d2e18114efdec0abe46dc4ed2d4529a8:/src/mac/app.cpp diff --git a/src/mac/app.cpp b/src/mac/app.cpp index bf3a261a93..0e4ce104f2 100644 --- a/src/mac/app.cpp +++ b/src/mac/app.cpp @@ -670,6 +670,8 @@ void wxApp::CleanUp() #if wxUSE_THREADS delete wxPendingEventsLocker; + // There is still more cleanup code that will try to use this if not NULL. + wxPendingEventsLocker = NULL; // If we don't do the following, we get an apparent memory leak. ((wxEvtHandler&) wxDefaultValidator).ClearEventLocker(); #endif @@ -2348,21 +2350,13 @@ void wxApp::MacHandleOSEvent( WXEVENTREF evr ) void wxApp::MacHandleMenuCommand( wxUint32 id ) { - wxMenuBar* mbar = wxMenuBar::MacGetInstalledMenuBar() ; - wxMenu* menu = NULL ; - wxMenuItem* item = NULL ; - if ( mbar ) - { - item = mbar->FindItem( id , &menu ) ; - } - wxCHECK_RET( item != NULL && menu != NULL && mbar != NULL, wxT("error in menu item callback") ); - - if (item->IsCheckable()) - { - item->Check( !item->IsChecked() ) ; - } - - menu->SendEvent( id , item->IsCheckable() ? item->IsChecked() : -1 ) ; + wxMenuBar* mbar = wxMenuBar::MacGetInstalledMenuBar() ; + wxFrame* frame = mbar->GetFrame(); + wxCHECK_RET( mbar != NULL && frame != NULL, wxT("error in menu item callback") ); + if ( frame ) + { + frame->ProcessCommand(id); + } } #if !TARGET_CARBON