fix start and end trim of timeline regions in a pianoroll

This commit is contained in:
Paul Davis
2025-03-10 09:42:27 -06:00
parent 53ffd61dd9
commit c14a8e91a7
3 changed files with 12 additions and 2 deletions

View File

@@ -71,6 +71,7 @@
#include "keyboard.h"
#include "mergeable_line.h"
#include "pianoroll.h"
#include "pianoroll_midi_view.h"
#include "midi_region_view.h"
#include "midi_selection.h"
#include "midi_time_axis.h"
@@ -7572,6 +7573,13 @@ ClipStartDrag::finished (GdkEvent* event, bool movement_occured)
}
timepos_t pos = adjusted_current_time (event);
assert (mce.midi_view());
if (mce.midi_view()->show_source()) {
pos = mce.midi_view()->source_beats_to_timeline (pos.beats());
}
editing_context.snap_to_with_modifier (pos, event, Temporal::RoundNearest, ARDOUR::SnapToGrid_Scaled, true);
mce.set_trigger_start (pos);
}

View File

@@ -782,7 +782,7 @@ Pianoroll::set_trigger_start (Temporal::timepos_t const & p)
} else {
begin_reversible_command (_("trim region front"));
view->midi_region()->clear_changes ();
view->midi_region()->trim_front (view->midi_region()->position() + p);
view->midi_region()->trim_front (view->midi_region()->source_position() + p);
add_command (new StatefulDiffCommand (view->midi_region()));
commit_reversible_command ();
}
@@ -796,7 +796,7 @@ Pianoroll::set_trigger_end (Temporal::timepos_t const & p)
} else {
begin_reversible_command (_("trim region end"));
view->midi_region()->clear_changes ();
view->midi_region()->trim_end (view->midi_region()->position() + p);
view->midi_region()->trim_end (view->midi_region()->source_position() + p);
add_command (new StatefulDiffCommand (view->midi_region()));
commit_reversible_command ();
}

View File

@@ -136,6 +136,8 @@ class Pianoroll : public CueEditor
void keyboard_paste ();
void cut_copy (Editing::CutCopyOp);
PianorollMidiView* midi_view() const { return view; }
protected:
void load_bindings ();
void register_actions ();