diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 96d02e817c..8f149f24e6 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -1780,6 +1780,10 @@ TrimDrag::finished (GdkEvent* event, bool movement_occurred) if (movement_occurred) { motion (event, false); + for (list::const_iterator i = _views.begin(); i != _views.end(); ++i) { + i->view->drag_end (); + } + /* This must happen before the region's StatefulDiffCommand is created, as it may `correct' (ahem) the region's _start from being negative to being zero. It needs to be zero in the undo record. @@ -1822,6 +1826,7 @@ TrimDrag::finished (GdkEvent* event, bool movement_occurred) } } } + for (set >::iterator p = _editor->motion_frozen_playlists.begin(); p != _editor->motion_frozen_playlists.end(); ++p) { (*p)->thaw (); } @@ -1829,10 +1834,6 @@ TrimDrag::finished (GdkEvent* event, bool movement_occurred) _editor->motion_frozen_playlists.clear (); _editor->commit_reversible_command(); - for (list::const_iterator i = _views.begin(); i != _views.end(); ++i) { - i->view->drag_end (); - } - } else { /* no mouse movement */ _editor->point_trim (event, adjusted_current_frame (event));