Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Add check to pause game on lost window focus
- Loading branch information
Showing
with
15 additions
and
0 deletions.
-
+3
−0
builtin/settingtypes.txt
-
+4
−0
minetest.conf.example
-
+1
−0
src/defaultsettings.cpp
-
+7
−0
src/game.cpp
|
@@ -536,6 +536,9 @@ fps_max (Maximum FPS) int 60 |
|
|
# Maximum FPS when game is paused. |
|
|
pause_fps_max (FPS in pause menu) int 20 |
|
|
|
|
|
# Open the pause menu when the window's focus is lost. Does not pause if a formspec is open. |
|
|
pause_on_lost_focus (Pause on lost window focus) bool false |
|
|
|
|
|
# View distance in nodes. |
|
|
viewing_range (Viewing range) int 100 20 4000 |
|
|
|
|
|
|
@@ -994,6 +994,10 @@ |
|
|
# type: int |
|
|
# max_out_chat_queue_size = 20 |
|
|
|
|
|
# Open the pause menu when the window's focus is lost. Does not pause if a formspec is open. |
|
|
# type: bool |
|
|
# pause_on_lost_focus = false |
|
|
|
|
|
## Advanced |
|
|
|
|
|
# Timeout for client to remove unused map data from memory. |
|
|
|
@@ -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"); |
|
|
|
@@ -1487,6 +1487,8 @@ class Game { |
|
|
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"); |
|
|
} |
|
|
|
|
|
/****************************************************************************/ |
|
|