X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gtk2_ardour%2Feditor_drag.cc;h=1fb4fabf45a268de9b40ed9c5c8ef93ea43b4683;hb=056ceba16a5ab45aabec0cd10ae3228881e640dc;hp=9885ea977675edd3390825ee1e2b3c3802df401b;hpb=8f59346592b8232e910ce0bbdc247cf8cecde4dd;p=ardour.git diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 9885ea9776..1fb4fabf45 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -1736,9 +1736,6 @@ void TrimDrag::motion (GdkEvent* event, bool first_move) { RegionView* rv = _primary; - nframes64_t frame_delta = 0; - - bool left_direction; /* snap modifier works differently here.. its current state has to be passed to the @@ -1756,12 +1753,6 @@ TrimDrag::motion (GdkEvent* event, bool first_move) nframes64_t const pf = adjusted_current_frame (event); - if (last_pointer_frame() > pf) { - left_direction = true; - } else { - left_direction = false; - } - if (first_move) { string trim_type; @@ -1802,12 +1793,6 @@ TrimDrag::motion (GdkEvent* event, bool first_move) } } - if (left_direction) { - frame_delta = (last_pointer_frame() - pf); - } else { - frame_delta = (pf - last_pointer_frame()); - } - bool non_overlap_trim = false; if (event && Keyboard::modifier_state_equals (event->button.state, Keyboard::TertiaryModifier)) { @@ -1816,26 +1801,16 @@ TrimDrag::motion (GdkEvent* event, bool first_move) switch (_operation) { case StartTrim: - if ((left_direction == false) && (pf <= rv->region()->first_frame()/speed)) { - break; - } else { - - for (list::const_iterator i = _views.begin(); i != _views.end(); ++i) { - _editor->single_start_trim (*i->view, frame_delta, left_direction, non_overlap_trim); - } - break; + for (list::const_iterator i = _views.begin(); i != _views.end(); ++i) { + _editor->single_start_trim (*i->view, pf, non_overlap_trim); } + break; case EndTrim: - if ((left_direction == true) && (pf > (nframes64_t) (rv->region()->last_frame()/speed))) { - break; - } else { - - for (list::const_iterator i = _views.begin(); i != _views.end(); ++i) { - _editor->single_end_trim (*i->view, frame_delta, left_direction, non_overlap_trim); - } - break; + for (list::const_iterator i = _views.begin(); i != _views.end(); ++i) { + _editor->single_end_trim (*i->view, pf, non_overlap_trim); } + break; case ContentsTrim: { @@ -1845,6 +1820,19 @@ TrimDrag::motion (GdkEvent* event, bool first_move) swap_direction = true; } + nframes64_t frame_delta = 0; + + bool left_direction = false; + if (last_pointer_frame() > pf) { + left_direction = true; + } + + if (left_direction) { + frame_delta = (last_pointer_frame() - pf); + } else { + frame_delta = (pf - last_pointer_frame()); + } + for (list::const_iterator i = _views.begin(); i != _views.end(); ++i) { _editor->single_contents_trim (*i->view, frame_delta, left_direction, swap_direction); }