فهرست منبع

Merge pull request #79600 from Rindbee/fix-rename-animation-in-SpriteFramesEditor

Fix rename animation in SpriteFramesEditor
Yuri Sizov 2 سال پیش
والد
کامیت
7573a458be
2فایلهای تغییر یافته به همراه8 افزوده شده و 1 حذف شده
  1. 4 0
      editor/plugins/animation_state_machine_editor.cpp
  2. 4 1
      editor/plugins/sprite_frames_editor_plugin.cpp

+ 4 - 0
editor/plugins/animation_state_machine_editor.cpp

@@ -1508,6 +1508,10 @@ void AnimationNodeStateMachineEditor::_name_edited(const String &p_text) {
 	int base = 1;
 	String name = base_name;
 	while (state_machine->has_node(name)) {
+		if (name == prev_name) {
+			name_edit_popup->hide(); // The old name wins, the name doesn't change, just hide the popup.
+			return;
+		}
 		base++;
 		name = base_name + " " + itos(base);
 	}

+ 4 - 1
editor/plugins/sprite_frames_editor_plugin.cpp

@@ -949,13 +949,16 @@ void SpriteFramesEditor::_animation_name_edited() {
 	String name = new_name;
 	int counter = 0;
 	while (frames->has_animation(name)) {
+		if (name == String(edited_anim)) {
+			edited->set_text(0, name); // The name didn't change, just updated the column text to name.
+			return;
+		}
 		counter++;
 		name = new_name + "_" + itos(counter);
 	}
 
 	EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
 	undo_redo->create_action(TTR("Rename Animation"), UndoRedo::MERGE_DISABLE, EditorNode::get_singleton()->get_edited_scene());
-	_rename_node_animation(undo_redo, false, edited_anim, "", "");
 	undo_redo->add_do_method(frames.ptr(), "rename_animation", edited_anim, name);
 	undo_redo->add_undo_method(frames.ptr(), "rename_animation", name, edited_anim);
 	_rename_node_animation(undo_redo, false, edited_anim, name, name);