aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--editor/scene_tree_dock.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 45622d43e..9a4bd9a56 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -1402,6 +1402,8 @@ void SceneTreeDock::_create() {
Node *newnode = Object::cast_to<Node>(c);
ERR_FAIL_COND(!newnode);
+ Node *default_oldnode = Object::cast_to<Node>(ClassDB::instance(n->get_class()));
+
List<PropertyInfo> pinfo;
n->get_property_list(&pinfo);
@@ -1410,10 +1412,13 @@ void SceneTreeDock::_create() {
continue;
if (E->get().name == "__meta__")
continue;
- newnode->set(E->get().name, n->get(E->get().name));
+ if (default_oldnode->get(E->get().name) != n->get(E->get().name)) {
+ newnode->set(E->get().name, n->get(E->get().name));
+ }
}
editor->push_item(NULL);
+ memdelete(default_oldnode);
//reconnect signals
List<MethodInfo> sl;