Fix incorrect track ordering when creating a session from a template
authornick_m <mainsbridge@gmail.com>
Sat, 14 Mar 2015 15:57:39 +0000 (02:57 +1100)
committernick_m <mainsbridge@gmail.com>
Sat, 14 Mar 2015 15:57:39 +0000 (02:57 +1100)
(supplied order keys are correct).
This really shouldn't be needed, but historically there have been races
between the treeview and the editor order keys.
Interesting to note that there have been no reported ordering bugs when
loading sessions.

gtk2_ardour/editor_routes.cc

index 5ca5f67f423a4fc5416b340f1f4c7de0fcd5e5a1..761212d9a274d9a0c15046073f40249c270320c8 100644 (file)
@@ -636,7 +636,7 @@ void
 EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
 {
        PBD::Unwinder<bool> at (_adding_routes, true);
-
+       bool from_scratch = (_model->children().size() == 0);
        Gtk::TreeModel::Children::iterator insert_iter = _model->children().end();
 
        for (Gtk::TreeModel::Children::iterator it = _model->children().begin(); it != _model->children().end(); ++it) {
@@ -716,8 +716,9 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
        _display.set_model (_model);
 
        /* now update route order keys from the treeview/track display order */
-
-       sync_order_keys_from_treeview ();
+       if (!from_scratch) {
+               sync_order_keys_from_treeview ();
+       }
 }
 
 void