diff --git a/apps/openmw/mwbase/windowmanager.hpp b/apps/openmw/mwbase/windowmanager.hpp index 6420dbf5e6..cfccb53c36 100644 --- a/apps/openmw/mwbase/windowmanager.hpp +++ b/apps/openmw/mwbase/windowmanager.hpp @@ -130,6 +130,8 @@ namespace MWBase virtual bool isConsoleMode() const = 0; + virtual bool isPostProcessorHudVisible() const = 0; + virtual void toggleVisible (MWGui::GuiWindow wnd) = 0; virtual void forceHide(MWGui::GuiWindow wnd) = 0; diff --git a/apps/openmw/mwgui/windowmanagerimp.cpp b/apps/openmw/mwgui/windowmanagerimp.cpp index dcc42cdc01..af95b49a88 100644 --- a/apps/openmw/mwgui/windowmanagerimp.cpp +++ b/apps/openmw/mwgui/windowmanagerimp.cpp @@ -1509,6 +1509,11 @@ namespace MWGui return mConsole && mConsole->isVisible(); } + bool WindowManager::isPostProcessorHudVisible() const + { + return mPostProcessorHud->isVisible(); + } + MWGui::GuiMode WindowManager::getMode() const { if (mGuiModes.empty()) diff --git a/apps/openmw/mwgui/windowmanagerimp.hpp b/apps/openmw/mwgui/windowmanagerimp.hpp index 3d12ca2d96..81ece9ee1f 100644 --- a/apps/openmw/mwgui/windowmanagerimp.hpp +++ b/apps/openmw/mwgui/windowmanagerimp.hpp @@ -170,6 +170,8 @@ namespace MWGui bool isConsoleMode() const override; + bool isPostProcessorHudVisible() const override; + void toggleVisible(GuiWindow wnd) override; void forceHide(MWGui::GuiWindow wnd) override; diff --git a/apps/openmw/mwinput/actionmanager.cpp b/apps/openmw/mwinput/actionmanager.cpp index 30118555d3..458066a5ee 100644 --- a/apps/openmw/mwinput/actionmanager.cpp +++ b/apps/openmw/mwinput/actionmanager.cpp @@ -323,6 +323,12 @@ namespace MWInput return; } + if (MWBase::Environment::get().getWindowManager()->isPostProcessorHudVisible()) + { + MWBase::Environment::get().getWindowManager()->togglePostProcessorHud(); + return; + } + if (!MWBase::Environment::get().getWindowManager()->isGuiMode()) //No open GUIs, open up the MainMenu { MWBase::Environment::get().getWindowManager()->pushGuiMode (MWGui::GM_MainMenu);