summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-08-09 17:28:38 +0000
committerCarl Hetherington <carl@carlh.net>2010-08-09 17:28:38 +0000
commit2c90b4f36cd074428631eb94b4a95ea0844870bc (patch)
tree769d8fa0733b0c360593b7c9bc68fffe3500080d
parent0bb594471f048158a9a23282d406045e70a1c8c5 (diff)
Fix fitting of automation tracks. Fixes #3384.
git-svn-id: svn://localhost/ardour2/branches/3.0@7576 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/editor_ops.cc17
1 files changed, 14 insertions, 3 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 2eb3987b89..ed6b489102 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -6674,20 +6674,31 @@ Editor::fit_tracks (TrackViewList & tracks)
undo_visual_stack.push_back (current_visual_state());
+ /* build a list of all tracks, including children */
+
+ TrackViewList all;
+ for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+ all.push_back (*i);
+ TimeAxisView::Children c = (*i)->get_child_list ();
+ for (TimeAxisView::Children::iterator j = c.begin(); j != c.end(); ++j) {
+ all.push_back (j->get());
+ }
+ }
+
/* operate on all tracks, hide unselected ones that are in the middle of selected ones */
bool prev_was_selected = false;
- bool is_selected = tracks.contains (track_views.front());
+ bool is_selected = tracks.contains (all.front());
bool next_is_selected;
- for (TrackViewList::iterator t = track_views.begin(); t != track_views.end(); ++t) {
+ for (TrackViewList::iterator t = all.begin(); t != all.end(); ++t) {
TrackViewList::iterator next;
next = t;
++next;
- if (next != track_views.end()) {
+ if (next != all.end()) {
next_is_selected = tracks.contains (*next);
} else {
next_is_selected = false;