summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-07-25 21:00:19 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-07-25 21:00:19 +0000
commit75fc3a82f88582691f478ce0f75fcab3e2e5d440 (patch)
tree51e01f8ccc340a8ed5bc4b3f677325eb0f196f00 /gtk2_ardour
parentaf7ba3347cedec421c7e62e772eed2a8d8300a59 (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.cc36
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;