]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/app.cpp
Add tests for XShape extension API in configure,
[wxWidgets.git] / src / mac / app.cpp
index bf3a261a93c62683c8606e50303a1a02a66a3648..0e4ce104f2799e6b90d71f48facb49f8ba04a5a7 100644 (file)
@@ -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