From 169425459faa4b7ce3bd1f65a3c12d56dc09623a Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Sat, 2 Jul 2005 13:34:47 +0000 Subject: [PATCH] Avoid calling BMenu::_hide() when not needed git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13401 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/Menu.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp index d13eae1503..2bd35a1a88 100644 --- a/src/kits/interface/Menu.cpp +++ b/src/kits/interface/Menu.cpp @@ -1523,20 +1523,23 @@ BMenu::Uninstall() void BMenu::SelectItem(BMenuItem *menuItem, uint32 showSubmenu, bool selectFirstItem) { - // TODO: make use of "selectFirstItem". + // TODO: make use of "selectFirstItem" if (fSelected != NULL) { fSelected->Select(false); - if (fSelected->Submenu() != NULL) - fSelected->Submenu()->_hide(); + BMenu *subMenu = fSelected->Submenu(); + if (subMenu != NULL && subMenu->Window() != NULL) + subMenu->_hide(); } if (menuItem != NULL) menuItem->Select(true); fSelected = menuItem; - if (fSelected != NULL && showSubmenu == 0 && fSelected->Submenu() != NULL) - fSelected->Submenu()->_show(); - + if (fSelected != NULL && showSubmenu == 0) { + BMenu *subMenu = fSelected->Submenu(); + if (subMenu != NULL && subMenu->Window() == NULL) + subMenu->_show(); + } }