From dbd1e1f7b83a18b27a92d6e1b809561684db8f15 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 21 Sep 2010 23:23:07 +0000 Subject: [PATCH] Don't update region list during region trim. Fixes #3467. git-svn-id: svn://localhost/ardour2/branches/3.0@7825 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_drag.cc | 13 ++++++++++++- gtk2_ardour/editor_regions.cc | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index f79df6bb42..c4040c346d 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -1547,6 +1547,10 @@ TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor) _editor->show_verbose_time_cursor (pf, 10); break; } + + for (list::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 (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::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::const_iterator i = _views.begin(); i != _views.end(); ++i) { + i->view->region()->resume_property_changes (); + } } MeterMarkerDrag::MeterMarkerDrag (Editor* e, ArdourCanvas::Item* i, bool c) diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc index 075d048d73..ed27ab7640 100644 --- a/gtk2_ardour/editor_regions.cc +++ b/gtk2_ardour/editor_regions.cc @@ -346,7 +346,7 @@ EditorRegions::region_changed (boost::shared_ptr r, const PropertyChange our_interests.add (ARDOUR::Properties::fade_in); our_interests.add (ARDOUR::Properties::fade_out); - if (last_row != NULL){ + if (last_row != 0) { TreeModel::iterator j = _model->get_iter (last_row.get_path()); boost::shared_ptr c = (*j)[_columns.region];