diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-07-07 16:04:17 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-07-07 16:04:17 +0200 |
commit | a2604ff7123174fd95c22a4c7f3e2972bb4fb514 (patch) | |
tree | 749ca236977db7cc898de0ce36d3bb7c6a764546 | |
parent | 2935a2b1de2f722aa9f931f22e4188db5ef7ef33 (diff) | |
parent | b2bef8c47babbfea3a11143e428a248f59da4eb5 (diff) | |
download | redot-engine-a2604ff7123174fd95c22a4c7f3e2972bb4fb514.tar.gz |
Merge pull request #78925 from theraot/fix_rename_unique
Do not change a node unique name to the same name
-rw-r--r-- | editor/gui/scene_tree_editor.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/editor/gui/scene_tree_editor.cpp b/editor/gui/scene_tree_editor.cpp index d1756df66c..7b0b816630 100644 --- a/editor/gui/scene_tree_editor.cpp +++ b/editor/gui/scene_tree_editor.cpp @@ -1019,11 +1019,18 @@ void SceneTreeEditor::_renamed() { } } - if (n->is_unique_name_in_owner() && get_tree()->get_edited_scene_root()->get_node_or_null("%" + new_name) != nullptr) { - error->set_text(TTR("Another node already uses this unique name in the scene.")); - error->popup_centered(); - which->set_text(0, n->get_name()); - return; + if (n->is_unique_name_in_owner()) { + Node *existing = get_tree()->get_edited_scene_root()->get_node_or_null("%" + new_name); + if (existing == n) { + which->set_text(0, n->get_name()); + return; + } + if (existing != nullptr) { + error->set_text(TTR("Another node already uses this unique name in the scene.")); + error->popup_centered(); + which->set_text(0, n->get_name()); + return; + } } _rename_node(n, new_name); |