Merge pull request #83512 from zaevi/fix_remove_from_floating_dock

Editor: Fix `remove_control_from_dock` fails when dock is floating.
This commit is contained in:
Rémi Verschelde 2023-10-20 15:08:40 +02:00
commit 15955e5d9e
No known key found for this signature in database
GPG Key ID: C3336907360768E1
1 changed files with 8 additions and 0 deletions

View File

@ -5856,6 +5856,14 @@ void EditorNode::add_control_to_dock(DockSlot p_slot, Control *p_control) {
} }
void EditorNode::remove_control_from_dock(Control *p_control) { void EditorNode::remove_control_from_dock(Control *p_control) {
// If the dock is floating, close it first.
for (WindowWrapper *wrapper : floating_docks) {
if (p_control == wrapper->get_wrapped_control()) {
wrapper->set_window_enabled(false);
break;
}
}
Control *dock = nullptr; Control *dock = nullptr;
for (int i = 0; i < DOCK_SLOT_MAX; i++) { for (int i = 0; i < DOCK_SLOT_MAX; i++) {
if (p_control->get_parent() == dock_slot[i]) { if (p_control->get_parent() == dock_slot[i]) {