summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-01-25 01:55:36 +0100
committerRobin Gareus <robin@gareus.org>2015-01-25 01:56:19 +0100
commit232d67bc531aaf64d697eb99106e484c1b4ad5b3 (patch)
treeee4584b57e5470eaac6a3ef9d068bd7e09bbd748 /gtk2_ardour/midi_region_view.cc
parent1fb83d698cfc8edd6c38c27ba2a301d40a2feed6 (diff)
midi note paste undo fix.
Diffstat (limited to 'gtk2_ardour/midi_region_view.cc')
-rw-r--r--gtk2_ardour/midi_region_view.cc9
1 files changed, 8 insertions, 1 deletions
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;
}