Browse Source

Fixed: Undo for delete command is broken #161

master
chrisgregan 9 years ago
parent
commit
d7a646c319
  1. 14
      Assets/Fungus/Flowchart/Editor/BlockEditor.cs
  2. 5
      Assets/Fungus/Flowchart/Editor/VariableListAdaptor.cs

14
Assets/Fungus/Flowchart/Editor/BlockEditor.cs

@ -990,25 +990,29 @@ namespace Fungus
if (command == selectedCommand)
{
command.OnCommandRemoved(block);
// Order of destruction is important here for undo to work
Undo.DestroyObjectImmediate(command);
Undo.RecordObject(flowchart.selectedBlock, "Delete");
flowchart.selectedBlock.commandList.RemoveAt(i);
Undo.DestroyObjectImmediate(command);
lastSelectedIndex = i;
break;
}
}
}
Undo.RecordObject(flowchart, "Delete");
flowchart.ClearSelectedCommands();
if (lastSelectedIndex < flowchart.selectedBlock.commandList.Count)
{
Command nextCommand = flowchart.selectedBlock.commandList[lastSelectedIndex];
block.GetFlowchart().AddSelectedCommand(nextCommand);
}
Repaint();
}

5
Assets/Fungus/Flowchart/Editor/VariableListAdaptor.cs

@ -138,6 +138,11 @@ namespace Fungus
{
foreach (Command selectedCommand in flowchart.selectedCommands)
{
if (selectedCommand == null)
{
continue;
}
if (selectedCommand.HasReference(variable))
{
highlight = true;

Loading…
Cancel
Save