13
0

Control Points should not obey Lock Edit, which was intended to lock regions and notes at the time where they were recorded.

Control Points should ignore x_constraint which is set in Drag::motion and potentially other places.
The only thing that should prevent CP sliding is can_slide which is false for the points at the ends of a region.
This commit is contained in:
Ben Loftis 2021-06-14 10:22:03 -05:00
parent 04104b68a6
commit c62b6e0e3e

View File

@ -4903,10 +4903,6 @@ ControlPointDrag::start_grab (GdkEvent* event, Gdk::Cursor* /*cursor*/)
show_verbose_cursor_text (_point->line().get_verbose_cursor_string (fraction));
_pushing = Keyboard::modifier_state_equals (event->button.state, ArdourKeyboard::push_points_modifier ());
if (!_point->can_slide ()) {
_x_constrained = true;
}
}
void
@ -4931,7 +4927,7 @@ ControlPointDrag::motion (GdkEvent* event, bool first_motion)
// positive side of zero
double const zero_gain_y = (1.0 - _zero_gain_fraction) * _point->line().height() - .01;
if (_x_constrained) {
if (!_point->can_slide ()) {
cx = _fixed_grab_x;
}
if (_y_constrained) {
@ -4952,7 +4948,7 @@ ControlPointDrag::motion (GdkEvent* event, bool first_motion)
MusicSample cx_mf (_editor->pixel_to_sample (cx) + snap_delta (event->button.state), 0);
if (!_x_constrained && need_snap) {
if (need_snap) {
_editor->snap_to_with_modifier (cx_mf, event);
}