Editor: Fix infinite appending of docks without slots to config

Docks without default slots (index -1, config key "dock_0") were being
infinitely appended to the editor layout config because this special
slot was never cleared before saving, unlike regular dock slots.

This adds code to explicitly clear the dock_0 config key before saving
closed docks, preventing infinite appending.
This commit is contained in:
Eshaan 2025-11-29 17:29:23 +11:00
parent 7ed0b61676
commit 819b69f2c1

View file

@ -600,6 +600,13 @@ void EditorDockManager::save_docks_to_config(Ref<ConfigFile> p_layout, const Str
}
}
// Clear the special dock slot for docks without default slots (index -1 = dock_0).
// This prevents closed docks from being infinitely appended to the config on each save.
const String no_slot_config_key = "dock_0";
if (p_layout->has_section_key(p_section, no_slot_config_key)) {
p_layout->erase_section_key(p_section, no_slot_config_key);
}
// Save docks in windows.
Dictionary floating_docks_dump;
for (WindowWrapper *wrapper : dock_windows) {