summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_route_list.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2007-11-17 20:35:32 +0000
committerCarl Hetherington <carl@carlh.net>2007-11-17 20:35:32 +0000
commitf8d6ceb2003251b4ab69f04c87de0d18dece4a9a (patch)
treee9fb5e882e2703595c37c75ffb29e39a05d3b0e3 /gtk2_ardour/editor_route_list.cc
parent513daee79d0ae979a048d7bdab02e170544ed593 (diff)
Fix for crash on track removal, backported from trunk.
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2687 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_route_list.cc')
-rw-r--r--gtk2_ardour/editor_route_list.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_route_list.cc b/gtk2_ardour/editor_route_list.cc
index ba17495e60..769bd5dc25 100644
--- a/gtk2_ardour/editor_route_list.cc
+++ b/gtk2_ardour/editor_route_list.cc
@@ -115,6 +115,14 @@ Editor::remove_route (TimeAxisView *tv)
TreeModel::Children rows = route_display_model->children();
TreeModel::Children::iterator ri;
+ /* Decrement old order keys for tracks `above' the one that is being removed */
+ for (ri = rows.begin(); ri != rows.end(); ++ri) {
+ TimeAxisView* v = (*ri)[route_display_columns.tv];
+ if (v->old_order_key() > tv->old_order_key()) {
+ v->set_old_order_key (v->old_order_key() - 1);
+ }
+ }
+
for (ri = rows.begin(); ri != rows.end(); ++ri) {
if ((*ri)[route_display_columns.tv] == tv) {
route_display_model->erase (ri);