diff --git a/apps/openmw/mwinput/inputmanagerimp.cpp b/apps/openmw/mwinput/inputmanagerimp.cpp index f19f63458..59e92eded 100644 --- a/apps/openmw/mwinput/inputmanagerimp.cpp +++ b/apps/openmw/mwinput/inputmanagerimp.cpp @@ -172,8 +172,8 @@ namespace MWInput exitNow(); break; case A_Screenshot: - screenshot(); - break; + screenshot() +; break; case A_Inventory: toggleInventory (); break; @@ -182,11 +182,14 @@ namespace MWInput break; case A_Activate: resetIdleTime(); - if( MWBase::Environment::get().getWindowManager()->isGuiMode()) { - // Pressing the activation key when a messagebox is prompting for "ok" will activate the ok button - MWBase::Environment::get().getWindowManager()->enterPressed(); - } - activate(); + + if (mWindows.getMode() == MWGui::GM_Container) { + toggleContainer (); + } else if (MWBase::Environment::get().getWindowManager()->isGuiMode()) { + MWBase::Environment::get().getWindowManager()->enterPressed(); + } else { + activate(); + } break; case A_Journal: toggleJournal (); @@ -674,6 +677,24 @@ namespace MWInput // .. but don't touch any other mode, except container. } + void InputManager::toggleContainer() + { + if (MyGUI::InputManager::getInstance ().isModalAny()) + return; + + bool gameMode = !mWindows.isGuiMode(); + + if(!gameMode) + { + if (mWindows.getMode() == MWGui::GM_Container) + mWindows.popGuiMode(); + else + mWindows.pushGuiMode(MWGui::GM_Container); + } + + } + + void InputManager::toggleConsole() { if (MyGUI::InputManager::getInstance ().isModalAny()) diff --git a/apps/openmw/mwinput/inputmanagerimp.hpp b/apps/openmw/mwinput/inputmanagerimp.hpp index f463de811..0c7940fd6 100644 --- a/apps/openmw/mwinput/inputmanagerimp.hpp +++ b/apps/openmw/mwinput/inputmanagerimp.hpp @@ -170,6 +170,7 @@ namespace MWInput void toggleSpell(); void toggleWeapon(); void toggleInventory(); + void toggleContainer(); void toggleConsole(); void screenshot(); void toggleJournal();