diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc index 5db3b736be..99d6cae559 100644 --- a/gtk2_ardour/editor_routes.cc +++ b/gtk2_ardour/editor_routes.cc @@ -1050,11 +1050,11 @@ EditorRoutes::sync_treeview_from_presentation_info (PropertyChange const & what_ TreeModel::Children rows = _model->children(); - if (what_changed.contains (hidden_or_order)) { + bool changed = false; + if (what_changed.contains (hidden_or_order)) { vector neworder; uint32_t old_order = 0; - bool changed = false; if (rows.empty()) { return; @@ -1101,15 +1101,13 @@ EditorRoutes::sync_treeview_from_presentation_info (PropertyChange const & what_ } } - if (what_changed.contains (Properties::selected)) { - + if (changed || what_changed.contains (Properties::selected)) { /* by the time this is invoked, the GUI Selection model has * already updated itself. */ - PBD::Unwinder uw (_ignore_selection_change, true); - /* set the treeview model selection state */ + /* set the treeview model selection state */ for (TreeModel::Children::iterator ri = rows.begin(); ri != rows.end(); ++ri) { boost::shared_ptr stripable = (*ri)[_columns.stripable]; if (stripable && stripable->is_selected()) {