Don't mess with the track selection at all from the editor route list
[ardour.git] / gtk2_ardour / editor_routes.cc
index 26b6c11b12960490cc10dc4d638942e229092912..5ca5f67f423a4fc5416b340f1f4c7de0fcd5e5a1 100644 (file)
@@ -516,7 +516,7 @@ EditorRoutes::redisplay_real ()
                }
 
                bool visible = tv->marked_for_display ();
-
+               
                /* show or hide the TimeAxisView */
                if (visible) {
                        position += tv->show_at (position, n, &_editor->edit_controls_vbox);
@@ -637,7 +637,6 @@ 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) {
@@ -649,10 +648,6 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
                }
        }
 
-       if(!from_scratch) {
-               _editor->selection->tracks.clear();
-       }
-
        DisplaySuspender ds;
 
        _display.set_model (Glib::RefPtr<ListStore>());
@@ -685,10 +680,6 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
                row[_columns.solo_safe_state] = (*x)->route()->solo_safe();
                row[_columns.name_editable] = true;
 
-               if (!from_scratch) {
-                       _editor->selection->add(*x);
-               }
-
                boost::weak_ptr<Route> wr ((*x)->route());
 
                (*x)->route()->gui_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::handle_gui_changes, this, _1, _2), gui_context());
@@ -1325,6 +1316,8 @@ EditorRoutes::button_press (GdkEventButton* ev)
 void
 EditorRoutes::selection_changed ()
 {
+       _editor->begin_reversible_selection_op (X_("Select Track from Route List"));
+
        if (_display.get_selection()->count_selected_rows() > 0) {
 
                TreeIter iter;
@@ -1349,6 +1342,8 @@ EditorRoutes::selection_changed ()
        } else {
                _editor->get_selection().clear_tracks ();
        }
+
+       _editor->commit_reversible_selection_op ();
 }
 
 bool