diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index ad7b618f5d..e3179e0f94 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -3425,10 +3425,12 @@ MidiRegionView::selection_as_cut_buffer () const bool MidiRegionView::paste (framepos_t pos, const ::Selection& selection, PasteContext& ctx) { + bool commit = false; // Paste notes, if available MidiNoteSelection::const_iterator m = selection.midi_notes.get_nth(ctx.counts.n_notes()); if (m != selection.midi_notes.end()) { ctx.counts.increase_n_notes(); + if (!(*m)->empty()) { commit = true; } paste_internal(pos, ctx.count, ctx.times, **m); } @@ -3436,9 +3438,14 @@ MidiRegionView::paste (framepos_t pos, const ::Selection& selection, PasteContex typedef RouteTimeAxisView::AutomationTracks ATracks; const ATracks& atracks = midi_view()->automation_tracks(); for (ATracks::const_iterator a = atracks.begin(); a != atracks.end(); ++a) { - a->second->paste(pos, selection, ctx); + if (a->second->paste(pos, selection, ctx)) { + commit = true; + } } + if (commit) { + trackview.editor().commit_reversible_command (); + } return true; }