diff options
author | rubenwardy <rw@rubenwardy.com> | 2017-09-10 03:17:47 +0100 |
---|---|---|
committer | paramat <mat.gregory@virginmedia.com> | 2017-12-26 21:53:45 +0000 |
commit | 0bcc2f33ebe382a1dafbe6edaf00f476f2584b74 (patch) | |
tree | d5dd0822bdee5ed00f87ba566e1e3c2ff9bfaa2f /src | |
parent | 2153965cf92ab61b0d7e095cf3c2755924fdc221 (diff) | |
download | minetest-0bcc2f33ebe382a1dafbe6edaf00f476f2584b74.tar.gz minetest-0bcc2f33ebe382a1dafbe6edaf00f476f2584b74.tar.bz2 minetest-0bcc2f33ebe382a1dafbe6edaf00f476f2584b74.zip |
Add check to pause game on lost window focus
Diffstat (limited to 'src')
-rw-r--r-- | src/defaultsettings.cpp | 1 | ||||
-rw-r--r-- | src/game.cpp | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 3bd4f4ac6..130bb4a19 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -58,6 +58,7 @@ void set_default_settings(Settings *settings) settings->setDefault("enable_remote_media_server", "true"); settings->setDefault("enable_client_modding", "false"); settings->setDefault("max_out_chat_queue_size", "20"); + settings->setDefault("pause_on_lost_focus", "false"); // Keymap settings->setDefault("remote_port", "30000"); diff --git a/src/game.cpp b/src/game.cpp index f7d4164ae..ac50e9aba 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1487,6 +1487,8 @@ private: bool m_first_loop_after_window_activation = false; bool m_camera_offset_changed = false; + bool m_does_lost_focus_pause_game = false; + #ifdef __ANDROID__ bool m_cache_hold_aux1; bool m_android_chat_open; @@ -1741,6 +1743,10 @@ void Game::run() // Update if minimap has been disabled by the server flags.show_minimap &= client->shouldShowMinimap(); + + if (m_does_lost_focus_pause_game && !device->isWindowFocused() && !isMenuActive()) { + showPauseMenu(); + } } } @@ -4638,6 +4644,7 @@ void Game::readSettings() m_cache_cam_smoothing = rangelim(m_cache_cam_smoothing, 0.01f, 1.0f); m_cache_mouse_sensitivity = rangelim(m_cache_mouse_sensitivity, 0.001, 100.0); + m_does_lost_focus_pause_game = g_settings->getBool("pause_on_lost_focus"); } /****************************************************************************/ |