summaryrefslogtreecommitdiff
path: root/libs/ardour/midi_model.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/midi_model.cc')
-rw-r--r--libs/ardour/midi_model.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/ardour/midi_model.cc b/libs/ardour/midi_model.cc
index bac630bb14..bdf0516dea 100644
--- a/libs/ardour/midi_model.cc
+++ b/libs/ardour/midi_model.cc
@@ -232,7 +232,12 @@ MidiModel::DiffCommand::operator()()
MidiModel::WriteLock lock(_model->edit_lock());
for (NoteList::iterator i = _added_notes.begin(); i != _added_notes.end(); ++i) {
- _model->add_note_unlocked(*i);
+ if (!_model->add_note_unlocked(*i)) {
+ /* failed to add it, so don't leave it in the removed list, to
+ avoid apparent errors on undo.
+ */
+ _removed_notes.remove (*i);
+ }
}
for (NoteList::iterator i = _removed_notes.begin(); i != _removed_notes.end(); ++i) {