diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp index 25c6683ca1..d151a07cb5 100644 --- a/src/kits/interface/Menu.cpp +++ b/src/kits/interface/Menu.cpp @@ -1186,6 +1186,8 @@ BMenu::_track(int *action, bigtime_t trackTime, long start) UnlockLooper(); locked = false; int submenuAction = MENU_ACT_NONE; + if (IsStickyMode()) + fSelected->Submenu()->SetStickyMode(true); BMenuItem *submenuItem = fSelected->Submenu()->_track(&submenuAction, startTime); if (submenuAction == MENU_ACT_CLOSE) { item = submenuItem; diff --git a/src/kits/interface/MenuBar.cpp b/src/kits/interface/MenuBar.cpp index 857648711d..3fb4a635fb 100644 --- a/src/kits/interface/MenuBar.cpp +++ b/src/kits/interface/MenuBar.cpp @@ -416,6 +416,8 @@ BMenuBar::Track(int32 *action, int32 startIndex, bool showMenu) window->Unlock(); locked = false; snoozeAmount = 0; + if (IsStickyMode()) + menu->SetStickyMode(true); resultItem = menu->_track(&localAction, startTime); } } else if (menuItem == NULL && !IsStickyMode())