From ae4df2e038c7dbb6f01b0aa12da6181fca6531c6 Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Mon, 25 Jul 2022 01:00:07 +0300 Subject: [PATCH] Only close quick keys-related modals when the menu is closed --- apps/openmw/mwgui/quickkeysmenu.cpp | 12 ++++++++++++ apps/openmw/mwgui/quickkeysmenu.hpp | 1 + apps/openmw/mwinput/actionmanager.cpp | 6 ------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/apps/openmw/mwgui/quickkeysmenu.cpp b/apps/openmw/mwgui/quickkeysmenu.cpp index aeadc88177..5608e8b767 100644 --- a/apps/openmw/mwgui/quickkeysmenu.cpp +++ b/apps/openmw/mwgui/quickkeysmenu.cpp @@ -123,6 +123,18 @@ namespace MWGui } } + void QuickKeysMenu::onClose() + { + WindowBase::onClose(); + + if (mAssignDialog) + mAssignDialog->setVisible(false); + if (mItemSelectionDialog) + mItemSelectionDialog->setVisible(false); + if (mMagicSelectionDialog) + mMagicSelectionDialog->setVisible(false); + } + void QuickKeysMenu::unassign(keyData* key) { key->button->clearUserStrings(); diff --git a/apps/openmw/mwgui/quickkeysmenu.hpp b/apps/openmw/mwgui/quickkeysmenu.hpp index 4761c98ceb..6343dfc879 100644 --- a/apps/openmw/mwgui/quickkeysmenu.hpp +++ b/apps/openmw/mwgui/quickkeysmenu.hpp @@ -33,6 +33,7 @@ namespace MWGui void onAssignMagic (const std::string& spellId); void onAssignMagicCancel (); void onOpen() override; + void onClose() override; void activateQuickKey(int index); void updateActivatedQuickKey(); diff --git a/apps/openmw/mwinput/actionmanager.cpp b/apps/openmw/mwinput/actionmanager.cpp index 488897ea72..75b53d47be 100644 --- a/apps/openmw/mwinput/actionmanager.cpp +++ b/apps/openmw/mwinput/actionmanager.cpp @@ -479,12 +479,6 @@ namespace MWInput { if (MWBase::Environment::get().getWindowManager()->getMode () == MWGui::GM_QuickKeysMenu) { - //Handle any open Modal windows - while (MyGUI::InputManager::getInstance().isModalAny()) - { - MWBase::Environment::get().getWindowManager()->exitCurrentModal(); - } - //And handle the actual main window MWBase::Environment::get().getWindowManager()->exitCurrentGuiMode(); return; }