X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed5903b61b490f03e95fa3eb2ea8d31997fceec7..2cfcf22d47b7d9cf3c85edfe498c5f23a18a9a19:/src/univ/menu.cpp diff --git a/src/univ/menu.cpp b/src/univ/menu.cpp index 11215d72a7..ae7eab4f2a 100644 --- a/src/univ/menu.cpp +++ b/src/univ/menu.cpp @@ -17,11 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "univmenuitem.h" - #pragma implementation "univmenu.h" -#endif - #include "wx/wxprec.h" #ifdef __BORLANDC__ @@ -142,7 +137,7 @@ public: // when the cursor is inside the popup, which dsables the menu tracking // so override it to do nothing #ifdef __WXMSW__ - void OnIdle(wxIdleEvent& event) { } + void OnIdle(wxIdleEvent& WXUNUSED(event)) { } #endif // get the currently selected item (may be NULL) @@ -482,6 +477,8 @@ void wxPopupMenuWindow::Dismiss() } wxPopupTransientWindow::Dismiss(); + + ResetCurrent(); } void wxPopupMenuWindow::OnDismiss() @@ -491,19 +488,13 @@ void wxPopupMenuWindow::OnDismiss() HandleDismiss(true); } -void wxPopupMenuWindow::OnSubmenuDismiss(bool dismissParent) +void wxPopupMenuWindow::OnSubmenuDismiss(bool WXUNUSED(dismissParent)) { m_hasOpenSubMenu = false; - - // we are closing whole menu so remove current highlight - if ( dismissParent ) - ResetCurrent(); } void wxPopupMenuWindow::HandleDismiss(bool dismissParent) { - ResetCurrent(); - m_menu->OnDismiss(dismissParent); } @@ -875,7 +866,13 @@ void wxPopupMenuWindow::OnMouseLeave(wxMouseEvent& event) void wxPopupMenuWindow::OnKeyDown(wxKeyEvent& event) { - if ( !ProcessKeyDown(event.GetKeyCode()) ) + wxMenuBar *menubar = m_menu->GetMenuBar(); + + if ( menubar ) + { + menubar->ProcessEvent(event); + } + else if ( !ProcessKeyDown(event.GetKeyCode()) ) { event.Skip(); } @@ -2480,7 +2477,7 @@ void wxMenuBar::OnDismiss() { if ( ReleaseMouseCapture() ) wxLogTrace(_T("mousecapture"), _T("Releasing mouse from wxMenuBar::OnDismiss")); - + if ( m_current != -1 ) { size_t current = m_current; @@ -2513,7 +2510,7 @@ bool wxMenuBar::ReleaseMouseCapture() if ( had ) ReleaseMouse(); - + capture->CaptureMouse(); return had;