]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/frame.cpp
Unicodified wxSplitPath
[wxWidgets.git] / src / msw / frame.cpp
index 811bea77caae2a71fcacff0e0d56089941535027..a96d6d99b677ab84d197dcbfa5030b6288664b25 100644 (file)
@@ -750,7 +750,7 @@ bool wxFrame::MSWOnCommand(WXWORD id, WXWORD cmd, WXHWND control)
       return FALSE;
   }
   else
-    return FALSE;
+    return wxWindow::MSWOnCommand(id, cmd, control);
 }
 
 void wxFrame::MSWOnMenuHighlight(WXWORD nItem, WXWORD nFlags, WXHMENU hSysMenu)
@@ -761,7 +761,7 @@ void wxFrame::MSWOnMenuHighlight(WXWORD nItem, WXWORD nFlags, WXHMENU hSysMenu)
     event.SetEventObject( this );
     GetEventHandler()->ProcessEvent(event);
   }
-  else if (nFlags != MF_SEPARATOR)
+  else if ((nFlags != MF_SEPARATOR) && (nItem != 0) && (nItem != 65535))
   {
     wxMenuEvent event(wxEVT_MENU_HIGHLIGHT, nItem);
     event.SetEventObject( this );
@@ -863,7 +863,7 @@ void wxFrame::OnMenuHighlight(wxMenuEvent& event)
     if ( menuId != -1 )
     {
       wxMenuBar *menuBar = GetMenuBar();
-      if (menuBar)
+      if (menuBar && menuBar->FindItem(menuId))
       {
         // set status text even if the string is empty - this will at
         // least remove the string from the item which was previously
@@ -916,7 +916,16 @@ void wxFrame::ProcessCommand(int id)
   {
     bar->Check(id,!bar->Checked(id)) ;
   }
-  GetEventHandler()->ProcessEvent(commandEvent);
+
+/*
+  // Process events starting with the window with the focus, if any.
+  wxWindow* focusWin = wxFindFocusDescendant(this);
+
+  wxEvtHandler* evtHandler = focusWin ? focusWin->GetEventHandler() : GetEventHandler();
+*/
+
+  wxEvtHandler* evtHandler = GetEventHandler();
+  evtHandler->ProcessEvent(commandEvent);
 }
 
 // Checks if there is a toolbar, and returns the first free client position