midi note paste undo fix.
This commit is contained in:
parent
1fb83d698c
commit
232d67bc53
@ -3425,10 +3425,12 @@ MidiRegionView::selection_as_cut_buffer () const
|
|||||||
bool
|
bool
|
||||||
MidiRegionView::paste (framepos_t pos, const ::Selection& selection, PasteContext& ctx)
|
MidiRegionView::paste (framepos_t pos, const ::Selection& selection, PasteContext& ctx)
|
||||||
{
|
{
|
||||||
|
bool commit = false;
|
||||||
// Paste notes, if available
|
// Paste notes, if available
|
||||||
MidiNoteSelection::const_iterator m = selection.midi_notes.get_nth(ctx.counts.n_notes());
|
MidiNoteSelection::const_iterator m = selection.midi_notes.get_nth(ctx.counts.n_notes());
|
||||||
if (m != selection.midi_notes.end()) {
|
if (m != selection.midi_notes.end()) {
|
||||||
ctx.counts.increase_n_notes();
|
ctx.counts.increase_n_notes();
|
||||||
|
if (!(*m)->empty()) { commit = true; }
|
||||||
paste_internal(pos, ctx.count, ctx.times, **m);
|
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;
|
typedef RouteTimeAxisView::AutomationTracks ATracks;
|
||||||
const ATracks& atracks = midi_view()->automation_tracks();
|
const ATracks& atracks = midi_view()->automation_tracks();
|
||||||
for (ATracks::const_iterator a = atracks.begin(); a != atracks.end(); ++a) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user