From 80a2ef29ad06b4aa6fb1c2ba91c19dcc68e732fa Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Sun, 24 Jul 2022 20:09:04 +0300 Subject: [PATCH] Allow activating quick keys menu in menus --- CHANGELOG.md | 1 + apps/openmw/mwinput/actionmanager.cpp | 25 ++++++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da42274f49..2c91b7bf1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -133,6 +133,7 @@ Bug #6799: Game crashes if an NPC has no Class attached Bug #6849: ImageButton texture is not scaled properly Bug #6895: Removing a negative number of items from a script, makes the script terminate with an error + Bug #6898: Accessing the Quick Inventory menu does not work while in menu mode Bug #6901: Morrowind.exe soul gem usage discrepancy Feature #890: OpenMW-CS: Column filtering Feature #1465: "Reset" argument for AI functions diff --git a/apps/openmw/mwinput/actionmanager.cpp b/apps/openmw/mwinput/actionmanager.cpp index 4674ead688..488897ea72 100644 --- a/apps/openmw/mwinput/actionmanager.cpp +++ b/apps/openmw/mwinput/actionmanager.cpp @@ -477,22 +477,25 @@ namespace MWInput void ActionManager::showQuickKeysMenu() { - if (!MWBase::Environment::get().getWindowManager()->isGuiMode () - && MWBase::Environment::get().getWorld()->getGlobalFloat ("chargenstate")==-1) - { - if (!checkAllowedToUseItems()) - return; - - MWBase::Environment::get().getWindowManager()->pushGuiMode (MWGui::GM_QuickKeysMenu); - } - else if (MWBase::Environment::get().getWindowManager()->getMode () == MWGui::GM_QuickKeysMenu) + if (MWBase::Environment::get().getWindowManager()->getMode () == MWGui::GM_QuickKeysMenu) { + //Handle any open Modal windows while (MyGUI::InputManager::getInstance().isModalAny()) - { //Handle any open Modal windows + { MWBase::Environment::get().getWindowManager()->exitCurrentModal(); } - MWBase::Environment::get().getWindowManager()->exitCurrentGuiMode(); //And handle the actual main window + //And handle the actual main window + MWBase::Environment::get().getWindowManager()->exitCurrentGuiMode(); + return; } + + if (MWBase::Environment::get().getWorld()->getGlobalFloat ("chargenstate") != -1) + return; + + if (!checkAllowedToUseItems()) + return; + + MWBase::Environment::get().getWindowManager()->pushGuiMode (MWGui::GM_QuickKeysMenu); } void ActionManager::activate()