Skip to content

Commit 03c251e

Browse files
authored
Merge pull request godotengine#85427 from bruvzg/ed_restore_mode
[Editor] Save and restore previous window mode when toggling full-screen.
2 parents b3a0e07 + 27ca31f commit 03c251e

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

editor/editor_node.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2943,8 +2943,13 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
29432943
feature_profile_manager->popup_centered_clamped(Size2(900, 800) * EDSCALE, 0.8);
29442944
} break;
29452945
case SETTINGS_TOGGLE_FULLSCREEN: {
2946-
DisplayServer::get_singleton()->window_set_mode(DisplayServer::get_singleton()->window_get_mode() == DisplayServer::WINDOW_MODE_FULLSCREEN ? DisplayServer::WINDOW_MODE_WINDOWED : DisplayServer::WINDOW_MODE_FULLSCREEN);
2947-
2946+
DisplayServer::WindowMode mode = DisplayServer::get_singleton()->window_get_mode();
2947+
if (mode == DisplayServer::WINDOW_MODE_FULLSCREEN || mode == DisplayServer::WINDOW_MODE_EXCLUSIVE_FULLSCREEN) {
2948+
DisplayServer::get_singleton()->window_set_mode(prev_mode);
2949+
} else {
2950+
prev_mode = mode;
2951+
DisplayServer::get_singleton()->window_set_mode(DisplayServer::WINDOW_MODE_FULLSCREEN);
2952+
}
29482953
} break;
29492954
case EDITOR_SCREENSHOT: {
29502955
screenshot_timer->start();

editor/editor_node.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,7 @@ class EditorNode : public Node {
332332
bool exiting = false;
333333
bool dimmed = false;
334334

335+
DisplayServer::WindowMode prev_mode = DisplayServer::WINDOW_MODE_MAXIMIZED;
335336
int old_split_ofs = 0;
336337
VSplitContainer *top_split = nullptr;
337338
HBoxContainer *bottom_hb = nullptr;

0 commit comments

Comments
 (0)