- TreeModel::iterator i;
- TreeModel::Children rows = group_model->children();
- Glib::RefPtr<TreeSelection> selection = edit_group_list.get_selection();
-
- for (i = rows.begin(); i != rows.end(); ++i) {
- RouteGroup* group;
-
- group = (*i)[group_columns.routegroup];
-
- if (selection->is_selected (i)) {
- for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
- if ((*j)->edit_group() == group) {
- select_strip_in_display (*j);
- }
- }
- } else {
- for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
- if ((*j)->edit_group() == group) {
- unselect_strip_in_display (*j);
- }
- }
+ RouteGroup* group;
+
+ if (in_edit_group_row_change) {
+ return;
+ }
+
+ if ((group = (*iter)[group_columns.routegroup]) == 0) {
+ return;
+ }
+
+ if ((*iter)[group_columns.is_visible]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->edit_group() == group) {
+ show_track_in_display (**j);
+ }