浏览代码

Close Menu Implemented

closeMenu function on guiMenuBar implemented. Closes menu when selecting a popup menu action.
Olathuss 7 月之前
父节点
当前提交
44df6dada7
共有 2 个文件被更改,包括 14 次插入0 次删除
  1. 10 0
      Engine/source/gui/editor/guiMenuBar.cpp
  2. 4 0
      Engine/source/gui/editor/guiPopupMenuCtrl.cpp

+ 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(""));
          }
       }