Don't update region list during region trim. Fixes #3467.
[ardour.git] / gtk2_ardour / editor_drag.cc
index f79df6bb4288ea9ea87b190bd9e3a12d1d2a89d3..c4040c346dc6d04d369b1733a7939d99a155cfc0 100644 (file)
@@ -1547,6 +1547,10 @@ TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor)
                _editor->show_verbose_time_cursor (pf, 10);
                break;
        }
+
+       for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
+               i->view->region()->suspend_property_changes ();
+       }
 }
 
 void
@@ -1594,7 +1598,6 @@ TrimDrag::motion (GdkEvent* event, bool first_move)
                        rv->fake_set_opaque(false);
                        rv->enable_display (false);
                         rv->region()->clear_changes ();
-                       rv->region()->suspend_property_changes ();
 
                        AudioRegionView* const arv = dynamic_cast<AudioRegionView*> (rv);
 
@@ -1705,6 +1708,10 @@ TrimDrag::finished (GdkEvent* event, bool movement_occurred)
                /* no mouse movement */
                _editor->point_trim (event, adjusted_current_frame (event));
        }
+
+       for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
+               i->view->region()->resume_property_changes ();
+       }
 }
 
 void
@@ -1720,6 +1727,10 @@ TrimDrag::aborted ()
        if (_have_transaction) {
                _editor->undo ();
        }
+
+       for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
+               i->view->region()->resume_property_changes ();
+       }
 }
 
 MeterMarkerDrag::MeterMarkerDrag (Editor* e, ArdourCanvas::Item* i, bool c)