diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2016-06-10 13:55:31 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-06-10 13:57:19 -0400 |
commit | f1d9dbf359c1bb5a22df6a7c188947acf685d0a5 (patch) | |
tree | b7d7253bf35e3b00e05f4ac896febd5885d72357 /gtk2_ardour | |
parent | 49011ea14646037ae940dcb19f45397c431713df (diff) |
fix behaviour of select_(next|prev)_route() in editor, when VCAs are present.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index ccb77558b8..d22df0a0bf 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -6168,6 +6168,7 @@ Editor::select_next_route() RouteUI *rui; do { for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) { + if (*i == current) { ++i; if (i != track_views.end()) { @@ -6179,10 +6180,12 @@ Editor::select_next_route() break; } } + rui = dynamic_cast<RouteUI *>(current); - } while ( current->hidden() || (rui != NULL && !rui->route()->active())); - selection->set(current); + } while (current->hidden() || (rui == NULL) || !rui->route()->active()); + + selection->set (current); ensure_time_axis_view_is_visible (*current, false); } @@ -6200,6 +6203,7 @@ Editor::select_prev_route() RouteUI *rui; do { for (TrackViewList::reverse_iterator i = track_views.rbegin(); i != track_views.rend(); ++i) { + if (*i == current) { ++i; if (i != track_views.rend()) { @@ -6211,7 +6215,8 @@ Editor::select_prev_route() } } rui = dynamic_cast<RouteUI *>(current); - } while ( current->hidden() || (rui != NULL && !rui->route()->active())); + + } while (current->hidden() || (rui == NULL) || !rui->route()->active()); selection->set (current); |