git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30688
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
virtual void OnDismiss();
// called when a submenu is dismissed
virtual void OnDismiss();
// called when a submenu is dismissed
- void OnSubmenuDismiss() { m_hasOpenSubMenu = false; }
+ void OnSubmenuDismiss(bool dismissParent);
// get the currently selected item (may be NULL)
wxMenuItem *GetCurrentItem() const
// get the currently selected item (may be NULL)
wxMenuItem *GetCurrentItem() const
if ( item->IsSubMenu() && item->GetSubMenu()->IsShown() )
{
item->GetSubMenu()->Dismiss();
if ( item->IsSubMenu() && item->GetSubMenu()->IsShown() )
{
item->GetSubMenu()->Dismiss();
+ OnSubmenuDismiss( false );
wxCHECK_RET( win, _T("opened submenu is not opened?") );
win->Dismiss();
wxCHECK_RET( win, _T("opened submenu is not opened?") );
win->Dismiss();
+ OnSubmenuDismiss( false );
}
wxPopupTransientWindow::Dismiss();
}
wxPopupTransientWindow::Dismiss();
+void wxPopupMenuWindow::OnSubmenuDismiss(bool dismissParent)
+{
+ m_hasOpenSubMenu = false;
+
+ // we are closing whole menu so remove current highlight
+ if ( dismissParent )
+ ResetCurrent();
+}
+
void wxPopupMenuWindow::HandleDismiss(bool dismissParent)
{
ResetCurrent();
void wxPopupMenuWindow::HandleDismiss(bool dismissParent)
{
ResetCurrent();
wxPopupMenuWindow *win = m_menuParent->m_popupMenu;
if ( win )
{
wxPopupMenuWindow *win = m_menuParent->m_popupMenu;
if ( win )
{
- win->OnSubmenuDismiss();
+ win->OnSubmenuDismiss( true );