From 1c5ccfe61ce9495038e38987ee538dc49a17d1f0 Mon Sep 17 00:00:00 2001 From: kit Date: Tue, 9 Dec 2025 17:15:13 -0500 Subject: [PATCH] Fix distraction-free mode changing split offsets --- editor/docks/editor_dock_manager.cpp | 4 +++- scene/gui/split_container.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/editor/docks/editor_dock_manager.cpp b/editor/docks/editor_dock_manager.cpp index 937905d11a8..70caeac7d52 100644 --- a/editor/docks/editor_dock_manager.cpp +++ b/editor/docks/editor_dock_manager.cpp @@ -923,7 +923,9 @@ void EditorDockManager::set_docks_visible(bool p_show) { } docks_visible = p_show; for (int i = 0; i < DockConstants::DOCK_SLOT_BOTTOM; i++) { - dock_slots[i].container->set_visible(docks_visible && dock_slots[i].container->get_tab_count() > 0); + // Show and hide in reverse order due to the SplitContainer prioritizing the last split offset. + TabContainer *container = dock_slots[docks_visible ? i : DockConstants::DOCK_SLOT_BOTTOM - i - 1].container; + container->set_visible(docks_visible && container->get_tab_count() > 0); } _update_layout(); } diff --git a/scene/gui/split_container.cpp b/scene/gui/split_container.cpp index c327a6b8cb2..cdf6523c6cb 100644 --- a/scene/gui/split_container.cpp +++ b/scene/gui/split_container.cpp @@ -993,7 +993,7 @@ void SplitContainer::_remove_valid_child(Control *p_control) { } // Only use desired sizes to change the split offset after the first time a child is removed. // This allows adding children to not affect the split offsets when creating. - can_use_desired_sizes = valid_children.size() > 1u; + can_use_desired_sizes = true; _update_default_dragger_positions(); queue_sort();