diff options
author | Gabriel Van Eyck <gvaneyck@users.noreply.github.com> | 2020-10-18 11:22:54 -0700 |
---|---|---|
committer | Gabriel Van Eyck <gvaneyck@users.noreply.github.com> | 2020-10-18 11:22:54 -0700 |
commit | a22275c8a29b1ee00f4d2c89da8c452b72c84493 (patch) | |
tree | e486546c2462282364ec45ddb909893c77c62c38 | |
parent | 6a8dfdb60e6ab47ee023c62a31cdd754e16d1ca5 (diff) |
Keep 'Editor Description' metadata when changing a Node's type
Also copy edit group/lock when replacing a Node3D
-rw-r--r-- | editor/scene_tree_dock.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index fa2270dcd6..c4e90ca3ff 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -2107,8 +2107,12 @@ void SceneTreeDock::replace_node(Node *p_node, Node *p_by_node, bool p_keep_prop } if (E->get().name == "__meta__") { - if (Object::cast_to<CanvasItem>(newnode)) { - Dictionary metadata = n->get(E->get().name); + Dictionary metadata = n->get(E->get().name); + if (metadata.has("_editor_description_")) { + newnode->set_meta("_editor_description_", metadata["_editor_description_"]); + } + + if (Object::cast_to<CanvasItem>(newnode) || Object::cast_to<Node3D>(newnode)) { if (metadata.has("_edit_group_") && metadata["_edit_group_"]) { newnode->set_meta("_edit_group_", true); } |