diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-07-25 21:00:19 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-07-25 21:00:19 +0000 |
commit | 75fc3a82f88582691f478ce0f75fcab3e2e5d440 (patch) | |
tree | 51e01f8ccc340a8ed5bc4b3f677325eb0f196f00 /gtk2_ardour | |
parent | af7ba3347cedec421c7e62e772eed2a8d8300a59 (diff) |
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
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/time_axis_view.cc | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 71a830982c..0902d213f5 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -563,13 +563,25 @@ TimeAxisView::name_entry_key_release (GdkEventKey* ev) name_entry_changed (); TrackViewList const & allviews = _editor.get_track_views (); TrackViewList::const_iterator i = find (allviews.begin(), allviews.end(), this); + if (ev->keyval == GDK_Tab) { if (i != allviews.end()) { do { if (++i == allviews.end()) { 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 { if (i != allviews.begin()) { @@ -577,13 +589,27 @@ TimeAxisView::name_entry_key_release (GdkEventKey* ev) if (i == allviews.begin()) { return true; } + --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(); - _editor.ensure_time_axis_view_is_visible (**i); + + if ((i != allviews.end()) && (*i != this) && !(*i)->hidden()) { + (*i)->name_entry.grab_focus(); + _editor.ensure_time_axis_view_is_visible (**i); + } } return true; |