1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-11 13:10:58 +00:00

fix unmarked unique when make local

Co-authored-by: Juan Linietsky reduzio@gmail.com
This commit is contained in:
Silc Renew
2022-07-26 20:55:07 +09:00
parent 6d57e209e9
commit 063f66d738

View File

@@ -1337,14 +1337,14 @@ void SceneTreeDock::_node_replace_owner(Node *p_base, Node *p_node, Node *p_root
UndoRedo *undo_redo = &editor_data->get_undo_redo(); UndoRedo *undo_redo = &editor_data->get_undo_redo();
switch (p_mode) { switch (p_mode) {
case MODE_BIDI: { case MODE_BIDI: {
bool is_unique = p_node->is_unique_name_in_owner() && p_base->get_node_or_null(UNIQUE_NODE_PREFIX + String(p_node->get_name())) != nullptr; bool disable_unique = p_node->is_unique_name_in_owner() && p_root->get_node_or_null(UNIQUE_NODE_PREFIX + String(p_node->get_name())) != nullptr;
if (is_unique) { if (disable_unique) {
// Will create a unique name conflict. Disable before setting owner. // Will create a unique name conflict. Disable before setting owner.
undo_redo->add_do_method(p_node, "set_unique_name_in_owner", false); undo_redo->add_do_method(p_node, "set_unique_name_in_owner", false);
} }
undo_redo->add_do_method(p_node, "set_owner", p_root); undo_redo->add_do_method(p_node, "set_owner", p_root);
undo_redo->add_undo_method(p_node, "set_owner", p_base); undo_redo->add_undo_method(p_node, "set_owner", p_base);
if (is_unique) { if (disable_unique) {
// Will create a unique name conflict. Enable after setting owner. // Will create a unique name conflict. Enable after setting owner.
undo_redo->add_undo_method(p_node, "set_unique_name_in_owner", true); undo_redo->add_undo_method(p_node, "set_unique_name_in_owner", true);
} }