summaryrefslogtreecommitdiff
path: root/gtk2_ardour/mixer_ui.cc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2016-11-04 08:39:41 -0700
committerLen Ovens <len@ovenwerks.net>2016-11-04 08:39:41 -0700
commit1457050d7aa2f5e0bee1957ff3710f58c04a2c62 (patch)
tree9803c64e57f4a532dd8a25d25561f6b8e5f83f04 /gtk2_ardour/mixer_ui.cc
parent8fb8e1bbde25f996533e345ba515a7411525916a (diff)
Fix Drifting Master hopefully for real this time.
Diffstat (limited to 'gtk2_ardour/mixer_ui.cc')
-rw-r--r--gtk2_ardour/mixer_ui.cc10
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;