when tabbing between track/bus name fields, skip rec-enabled tracks to avoid an annoy...
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 25 Jul 2011 21:00:19 +0000 (21:00 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 25 Jul 2011 21:00:19 +0000 (21:00 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@9925 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/time_axis_view.cc

index 71a830982c83952be3a4eae1efbe63c02328de1e..0902d213f5cbcd0777a7996d083cc082c2babb7f 100644 (file)
@@ -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;