diff options
author | Len Ovens <len@ovenwerks.net> | 2016-11-04 08:39:41 -0700 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2016-11-04 08:39:41 -0700 |
commit | 1457050d7aa2f5e0bee1957ff3710f58c04a2c62 (patch) | |
tree | 9803c64e57f4a532dd8a25d25561f6b8e5f83f04 /gtk2_ardour/mixer_ui.cc | |
parent | 8fb8e1bbde25f996533e345ba515a7411525916a (diff) |
Fix Drifting Master hopefully for real this time.
Diffstat (limited to 'gtk2_ardour/mixer_ui.cc')
-rw-r--r-- | gtk2_ardour/mixer_ui.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index edae72fe6c..e8b88c2f93 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -714,6 +714,11 @@ Mixer_UI::sync_presentation_info_from_treeview () bool change = false; uint32_t order = 0; + // special case master if it's got PI order 0 lets keep it there + if (_session->master_out() && (_session->master_out()->presentation_info().order() == 0)) { + order++; + } + for (ri = rows.begin(); ri != rows.end(); ++ri) { bool visible = (*ri)[stripable_columns.visible]; boost::shared_ptr<Stripable> stripable = (*ri)[stripable_columns.stripable]; @@ -736,6 +741,11 @@ Mixer_UI::sync_presentation_info_from_treeview () stripable->presentation_info().set_hidden (!visible); + // master may not get set here, but if it is zero keep it there + if (stripable->is_master() && (stripable->presentation_info().order() == 0)) { + continue; + } + if (order != stripable->presentation_info().order()) { stripable->set_presentation_order (order, false); change = true; |