Fix undo references for conversion to CPUParticles

The 'undo' reference should be the node to free when the undo history
is lost, i.e. the original (GPU) Particles node. Similarly, the 'do'
reference should point to the CPUParticles (result of the 'do' call).

Fixes #29742.
This commit is contained in:
Rémi Verschelde 2019-06-24 12:08:28 +02:00
parent 5e21310343
commit ed504753f4
2 changed files with 4 additions and 4 deletions

View File

@ -96,9 +96,9 @@ void Particles2DEditorPlugin::_menu_callback(int p_idx) {
UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
ur->create_action(TTR("Convert to CPUParticles"));
ur->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", particles, cpu_particles, true, false);
ur->add_do_reference(particles);
ur->add_do_reference(cpu_particles);
ur->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", cpu_particles, particles, false, false);
ur->add_undo_reference(this);
ur->add_undo_reference(particles);
ur->commit_action();
} break;

View File

@ -315,9 +315,9 @@ void ParticlesEditor::_menu_option(int p_option) {
UndoRedo *ur = EditorNode::get_singleton()->get_undo_redo();
ur->create_action(TTR("Convert to CPUParticles"));
ur->add_do_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", node, cpu_particles, true, false);
ur->add_do_reference(node);
ur->add_do_reference(cpu_particles);
ur->add_undo_method(EditorNode::get_singleton()->get_scene_tree_dock(), "replace_node", cpu_particles, node, false, false);
ur->add_undo_reference(this);
ur->add_undo_reference(node);
ur->commit_action();
} break;