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); diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 7f7717e00f..6949d31bd3 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -327,6 +327,14 @@ Mixer_UI::remove_strip (MixerStrip* strip) strips.erase (i); } + /* Decrement old order keys for strips `above' the one that is being removed */ + for (ri = rows.begin(); ri != rows.end(); ++ri) { + MixerStrip* s = (*ri)[track_columns.strip]; + if (s->old_order_key() > strip->old_order_key()) { + s->set_old_order_key (s->old_order_key() - 1); + } + } + for (ri = rows.begin(); ri != rows.end(); ++ri) { if ((*ri)[track_columns.strip] == strip) { track_model->erase (ri);