if (command.oldds != null && command.oldds[i] != null)
{
- // oldds entry contains the cut dataset sequence.
+ // Undoing previous Paste - so
+ // oldds entry contains the cut dataset sequence,
+ // with sequence features in expected place.
sequence.setDatasetSequence(command.oldds[i]);
command.oldds[i] = oldds;
}
else
{
- // modify the oldds if necessary
- if (oldds != sequence.getDatasetSequence()
- || sequence.getFeatures().hasFeatures())
+ // New cut operation
+ // We always keep track of the dataset sequence so we can safely
+ // restore it during the Undo
+ if (command.oldds == null)
{
- if (command.oldds == null)
- {
- command.oldds = new SequenceI[command.seqs.length];
- }
- command.oldds[i] = oldds;
+ command.oldds = new SequenceI[command.seqs.length];
+ }
+ command.oldds[i] = oldds;
if (cutPositions != null)
{