mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-25 16:07:49 +01:00
Skip non active and hidden tracks with prev/next track. Also prevent ensuring the visibility of a hidden track.
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4095 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
596aa3a4fe
commit
200d7baff7
1 changed files with 36 additions and 28 deletions
|
|
@ -5147,23 +5147,26 @@ Editor::select_next_route()
|
|||
|
||||
TimeAxisView* current = selection->tracks.front();
|
||||
|
||||
TimeAxisView* selected;
|
||||
|
||||
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
|
||||
if (*i == current) {
|
||||
++i;
|
||||
if (i != track_views.end()) {
|
||||
selected = (*i);
|
||||
selection->set (*i);
|
||||
} else {
|
||||
selected = (*(track_views.begin()));
|
||||
selection->set (*(track_views.begin()));
|
||||
RouteUI *rui;
|
||||
do {
|
||||
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
|
||||
if (*i == current) {
|
||||
++i;
|
||||
if (i != track_views.end()) {
|
||||
current = (*i);
|
||||
} else {
|
||||
current = (*(track_views.begin()));
|
||||
//selection->set (*(track_views.begin()));
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
rui = dynamic_cast<RouteUI *>(current);
|
||||
} while ( current->hidden() || (rui != NULL && !rui->route()->active()));
|
||||
|
||||
ensure_track_visible(selected);
|
||||
selection->set(current);
|
||||
|
||||
ensure_track_visible(current);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -5176,28 +5179,33 @@ Editor::select_prev_route()
|
|||
|
||||
TimeAxisView* current = selection->tracks.front();
|
||||
|
||||
TimeAxisView* selected;
|
||||
|
||||
for (TrackViewList::reverse_iterator i = track_views.rbegin(); i != track_views.rend(); ++i) {
|
||||
if (*i == current) {
|
||||
++i;
|
||||
if (i != track_views.rend()) {
|
||||
selected = (*i);
|
||||
selection->set (*i);
|
||||
} else {
|
||||
selected = *(track_views.rbegin());
|
||||
selection->set (*(track_views.rbegin()));
|
||||
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()) {
|
||||
current = (*i);
|
||||
} else {
|
||||
current = *(track_views.rbegin());
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
rui = dynamic_cast<RouteUI *>(current);
|
||||
} while ( current->hidden() || (rui != NULL && !rui->route()->active()));
|
||||
|
||||
ensure_track_visible(selected);
|
||||
selection->set (current);
|
||||
|
||||
ensure_track_visible(current);
|
||||
}
|
||||
|
||||
void
|
||||
Editor::ensure_track_visible(TimeAxisView *track)
|
||||
{
|
||||
if (track->hidden())
|
||||
return;
|
||||
|
||||
double current_view_min_y = vertical_adjustment.get_value();
|
||||
double current_view_max_y = vertical_adjustment.get_value() + vertical_adjustment.get_page_size() - canvas_timebars_vsize;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue