소스 검색

Do not change a node unique name to the same name

(cherry picked from commit b2bef8c47babbfea3a11143e428a248f59da4eb5)
Alfonso J. Ramos 2 년 전
부모
커밋
8cea540eba
1개의 변경된 파일12개의 추가작업 그리고 5개의 파일을 삭제
  1. 12 5
      editor/gui/scene_tree_editor.cpp

+ 12 - 5
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);