Pārlūkot izejas kodu

Close Menu Implemented

closeMenu function on guiMenuBar implemented. Closes menu when selecting a popup menu action.
Olathuss 7 mēneši atpakaļ
vecāks
revīzija
44df6dada7

+ 10 - 0
Engine/source/gui/editor/guiMenuBar.cpp

@@ -506,6 +506,16 @@ void GuiMenuBar::onAction()
    mouseDownMenu->popupMenu->showPopup(root, pos.x, pos.y);
 }
 
+void GuiMenuBar::closeMenu()
+{
+   if(mouseDownMenu)
+      mouseDownMenu->popupMenu->hidePopup();
+
+   mouseOverMenu = NULL;
+   mouseDownMenu = NULL;
+   mMouseInMenu = false;
+}
+
 //  Process a tick
 void GuiMenuBar::processTick()
 {

+ 4 - 0
Engine/source/gui/editor/guiPopupMenuCtrl.cpp

@@ -247,6 +247,10 @@ void GuiPopupMenuTextListCtrl::onMouseUp(const GuiEvent &event)
       {
          if (item->mEnabled)
          {
+            if(mMenuBar)
+            {
+               mMenuBar->closeMenu();
+            }
             Con::executef(mPopup, "onSelectItem", Con::getIntArg(getSelectedCell().y), item->mText.isNotEmpty() ? item->mText : String(""));
          }
       }