aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
Diffstat (limited to 'backends')
-rw-r--r--backends/events/default/default-events.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp
index 8b3fe5cdc4..ee3cfe7ce9 100644
--- a/backends/events/default/default-events.cpp
+++ b/backends/events/default/default-events.cpp
@@ -139,10 +139,14 @@ bool DefaultEventManager::pollEvent(Common::Event &event) {
if (_vk->isDisplaying()) {
_vk->close(true);
} else {
- if (g_engine)
+ // Check if the engine is already paused before pausing it again
+ // Fixes #2912148. Where opening the GMM and then the virtual keyboard
+ // and then closing them left the game mute.
+ bool enginePaused = g_engine ? g_engine->isPaused() : true;
+ if (!enginePaused)
g_engine->pauseEngine(true);
_vk->show();
- if (g_engine)
+ if (!enginePaused)
g_engine->pauseEngine(false);
result = false;
}