]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/framecmn.cpp
let wxSpinCtrl process the enter key
[wxWidgets.git] / src / common / framecmn.cpp
index c7678d5b5f55afd743a4735ff53594202680a002..5782c231eff4c8304a89d89d41ff6f1af5707dd5 100644 (file)
@@ -290,6 +290,14 @@ void wxFrameBase::OnMenuHighlight(wxMenuEvent& event)
 #endif // wxUSE_STATUSBAR
 }
 
+bool wxFrameBase::SendIconizeEvent(bool iconized)
+{
+    wxIconizeEvent event(GetId(), iconized);
+    event.SetEventObject(this);
+
+    return GetEventHandler()->ProcessEvent(event);
+}
+
 // ----------------------------------------------------------------------------
 // status bar stuff
 // ----------------------------------------------------------------------------
@@ -427,18 +435,23 @@ void wxFrameBase::DoMenuUpdates()
 {
     wxMenuBar* bar = GetMenuBar();
 
+#ifdef __WXMSW__
+    wxWindow* focusWin = wxFindFocusDescendant((wxWindow*) this);
+#else
+    wxWindow* focusWin = (wxWindow*) NULL;
+#endif
     if ( bar != NULL )
     {
         int nCount = bar->GetMenuCount();
         for (int n = 0; n < nCount; n++)
-            DoMenuUpdates(bar->GetMenu(n), (wxWindow*) NULL);
+            DoMenuUpdates(bar->GetMenu(n), focusWin);
     }
 }
 
 // update a menu and all submenus recursively
-void wxFrameBase::DoMenuUpdates(wxMenu* menu, wxWindow* WXUNUSED(focusWin))
+void wxFrameBase::DoMenuUpdates(wxMenu* menu, wxWindow* focusWin)
 {
-    wxEvtHandler* evtHandler = GetEventHandler();
+    wxEvtHandler* evtHandler = focusWin ? focusWin->GetEventHandler() : GetEventHandler();
     wxMenuItemList::Node* node = menu->GetMenuItems().GetFirst();
     while (node)
     {