mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 11:46:25 +01:00
shift-modifier during trim dragging causes region to jump to original position (anchored at start or end, depending on trim type)
This commit is contained in:
parent
e99c8960c0
commit
56af57d682
2 changed files with 13 additions and 1 deletions
|
|
@ -1789,9 +1789,10 @@ VideoTimeLineDrag::aborted (bool)
|
||||||
|
|
||||||
TrimDrag::TrimDrag (Editor* e, ArdourCanvas::Item* i, RegionView* p, list<RegionView*> const & v, bool preserve_fade_anchor)
|
TrimDrag::TrimDrag (Editor* e, ArdourCanvas::Item* i, RegionView* p, list<RegionView*> const & v, bool preserve_fade_anchor)
|
||||||
: RegionDrag (e, i, p, v)
|
: RegionDrag (e, i, p, v)
|
||||||
|
, _preserve_fade_anchor (preserve_fade_anchor)
|
||||||
|
, _jump_position_when_done (false)
|
||||||
{
|
{
|
||||||
DEBUG_TRACE (DEBUG::Drags, "New TrimDrag\n");
|
DEBUG_TRACE (DEBUG::Drags, "New TrimDrag\n");
|
||||||
_preserve_fade_anchor = preserve_fade_anchor;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1828,6 +1829,10 @@ TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor*)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Keyboard::modifier_state_equals (event->button.state, Keyboard::TertiaryModifier)) {
|
||||||
|
_jump_position_when_done = true;
|
||||||
|
}
|
||||||
|
|
||||||
switch (_operation) {
|
switch (_operation) {
|
||||||
case StartTrim:
|
case StartTrim:
|
||||||
show_verbose_cursor_time (region_start);
|
show_verbose_cursor_time (region_start);
|
||||||
|
|
@ -2007,6 +2012,9 @@ TrimDrag::finished (GdkEvent* event, bool movement_occurred)
|
||||||
ar->set_fade_in_length(new_length);
|
ar->set_fade_in_length(new_length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (_jump_position_when_done) {
|
||||||
|
i->view->region()->set_position (i->initial_position);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (_operation == EndTrim) {
|
} else if (_operation == EndTrim) {
|
||||||
for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
|
for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
|
||||||
|
|
@ -2024,6 +2032,9 @@ TrimDrag::finished (GdkEvent* event, bool movement_occurred)
|
||||||
ar->set_fade_out_length(new_length);
|
ar->set_fade_out_length(new_length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (_jump_position_when_done) {
|
||||||
|
i->view->region()->set_position (i->initial_end - i->view->region()->length());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -572,6 +572,7 @@ private:
|
||||||
Operation _operation;
|
Operation _operation;
|
||||||
|
|
||||||
bool _preserve_fade_anchor;
|
bool _preserve_fade_anchor;
|
||||||
|
bool _jump_position_when_done;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Meter marker drag */
|
/** Meter marker drag */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue