diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index e69dcb22781..d97aeb1b309 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -4663,6 +4663,7 @@ void EditorNode::_dock_make_float(Control *p_dock, int p_slot_index, bool p_show wrapper->set_meta("dock_slot", p_slot_index); wrapper->set_meta("dock_index", dock_index); wrapper->set_meta("dock_name", p_dock->get_name().operator String()); + p_dock->show(); wrapper->connect("window_close_requested", callable_mp(this, &EditorNode::_dock_floating_close_request).bind(wrapper)); @@ -5166,14 +5167,16 @@ void EditorNode::_load_docks_from_config(Ref p_layout, const String if (wrapper->get_meta("dock_name") == name) { if (restore_window_on_load && floating_docks_dump.has(name)) { _restore_floating_dock(floating_docks_dump[name], wrapper, i); - return; } else { - _dock_floating_close_request(wrapper); - atidx = wrapper->get_meta("dock_index"); + atidx = wrapper->get_meta("dock_slot"); + node = wrapper->get_wrapped_control(); + wrapper->set_window_enabled(false); } + break; } } - + } + if (!node) { // Well, it's not anywhere. continue; } @@ -5196,7 +5199,7 @@ void EditorNode::_load_docks_from_config(Ref p_layout, const String if (restore_window_on_load && floating_docks_dump.has(name)) { _restore_floating_dock(floating_docks_dump[name], node, i); } else if (wrapper) { - _dock_floating_close_request(wrapper); + wrapper->set_window_enabled(false); } }