diff options
Diffstat (limited to 'editor/editor_node.cpp')
| -rw-r--r-- | editor/editor_node.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index dc3afc2f1d..fa8810c539 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -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) { + // 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; for (int i = 0; i < DOCK_SLOT_MAX; i++) { if (p_control->get_parent() == dock_slot[i]) { @@ -6951,6 +6959,7 @@ EditorNode::EditorNode() { // Exporters might need the theme. EditorColorMap::create(); + EditorTheme::initialize(); theme = create_custom_theme(); DisplayServer::set_early_window_clear_color_override(true, theme->get_color(SNAME("background"), EditorStringName(Editor))); @@ -8038,6 +8047,8 @@ EditorNode::~EditorNode() { memdelete(progress_hb); EditorSettings::destroy(); + EditorColorMap::finish(); + EditorTheme::finalize(); GDExtensionEditorPlugins::editor_node_add_plugin = nullptr; GDExtensionEditorPlugins::editor_node_remove_plugin = nullptr; |
