when tabbing between track/bus name fields, skip rec-enabled tracks to avoid an annoying halt to the motion

git-svn-id: svn://localhost/ardour2/branches/3.0@9925 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2011-07-25 21:00:19 +00:00
parent af7ba3347c
commit 75fc3a82f8

View file

@ -563,13 +563,25 @@ TimeAxisView::name_entry_key_release (GdkEventKey* ev)
name_entry_changed (); name_entry_changed ();
TrackViewList const & allviews = _editor.get_track_views (); TrackViewList const & allviews = _editor.get_track_views ();
TrackViewList::const_iterator i = find (allviews.begin(), allviews.end(), this); TrackViewList::const_iterator i = find (allviews.begin(), allviews.end(), this);
if (ev->keyval == GDK_Tab) { if (ev->keyval == GDK_Tab) {
if (i != allviews.end()) { if (i != allviews.end()) {
do { do {
if (++i == allviews.end()) { if (++i == allviews.end()) {
return true; return true;
} }
} while((*i)->hidden());
RouteTimeAxisView* rtav = dynamic_cast<RouteTimeAxisView*>(*i);
if (rtav && rtav->route()->record_enabled()) {
continue;
}
if (!(*i)->hidden()) {
break;
}
} while (true);
} }
} else { } else {
if (i != allviews.begin()) { if (i != allviews.begin()) {
@ -577,13 +589,27 @@ TimeAxisView::name_entry_key_release (GdkEventKey* ev)
if (i == allviews.begin()) { if (i == allviews.begin()) {
return true; return true;
} }
--i; --i;
} while ((*i)->hidden());
RouteTimeAxisView* rtav = dynamic_cast<RouteTimeAxisView*>(*i);
if (rtav && rtav->route()->record_enabled()) {
continue;
}
if (!(*i)->hidden()) {
break;
}
} while (true);
} }
} }
(*i)->name_entry.grab_focus(); if ((i != allviews.end()) && (*i != this) && !(*i)->hidden()) {
_editor.ensure_time_axis_view_is_visible (**i); (*i)->name_entry.grab_focus();
_editor.ensure_time_axis_view_is_visible (**i);
}
} }
return true; return true;