diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp index 64483cb12a..202bd00f08 100644 --- a/src/kits/interface/Menu.cpp +++ b/src/kits/interface/Menu.cpp @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -2646,6 +2647,11 @@ BMenu::_SelectNextItem(BMenuItem* item, bool forward) _SelectItem(nextItem, dynamic_cast(this) != NULL); + if (LockLooper()) { + be_app->ObscureCursor(); + UnlockLooper(); + } + return true; } @@ -2986,9 +2992,19 @@ BMenu::_QuitTracking(bool onlyThis) fState = MENU_STATE_CLOSED; - // Close the whole menu hierarchy - if (!onlyThis && _IsStickyMode()) - _SetStickyMode(false); + if (!onlyThis) { + // Close the whole menu hierarchy + if (Supermenu() != NULL) + Supermenu()->fState = MENU_STATE_CLOSED; + + if (_IsStickyMode()) + _SetStickyMode(false); + + if (LockLooper()) { + be_app->ShowCursor(); + UnlockLooper(); + } + } _Hide(); }