summaryrefslogtreecommitdiff
path: root/gtk2_ardour/route_time_axis.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2017-01-29 15:02:07 +0100
committerPaul Davis <paul@linuxaudiosystems.com>2017-01-29 15:03:29 +0100
commitd29f6bde5ef1477a36e1e550ef5a548c5b0b1580 (patch)
tree2a731dbad98546ccc04ce6e60134c683219b0b91 /gtk2_ardour/route_time_axis.cc
parent34da2896c636a18376f0da2da8c2732f52c99461 (diff)
prevent suggestion that MIDI tracks can be set to stacked view
Diffstat (limited to 'gtk2_ardour/route_time_axis.cc')
-rw-r--r--gtk2_ardour/route_time_axis.cc30
1 files changed, 22 insertions, 8 deletions
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index 2bb7577319..25edb7a720 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -632,21 +632,27 @@ RouteTimeAxisView::build_display_menu ()
int overlaid = 0;
int stacked = 0;
+ int unchangeable = 0;
TrackSelection const & s = _editor.get_selection().tracks;
+
for (TrackSelection::const_iterator i = s.begin(); i != s.end(); ++i) {
StreamView* v = (*i)->view ();
if (!v) {
continue;
}
- switch (v->layer_display ()) {
- case Overlaid:
- ++overlaid;
- break;
- case Stacked:
- case Expanded:
- ++stacked;
- break;
+ if (v->can_change_layer_display()) {
+ switch (v->layer_display ()) {
+ case Overlaid:
+ ++overlaid;
+ break;
+ case Stacked:
+ case Expanded:
+ ++stacked;
+ break;
+ }
+ } else {
+ unchangeable++;
}
}
@@ -664,12 +670,20 @@ RouteTimeAxisView::build_display_menu ()
i->set_inconsistent (overlaid != 0 && stacked != 0);
i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteTimeAxisView::set_layer_display), Overlaid, true));
+ if (unchangeable) {
+ i->set_sensitive (false);
+ }
+
layers_items.push_back (RadioMenuElem (layers_group, _("Stacked")));
i = dynamic_cast<RadioMenuItem*> (&layers_items.back ());
i->set_active (overlaid == 0 && stacked != 0);
i->set_inconsistent (overlaid != 0 && stacked != 0);
i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &RouteTimeAxisView::set_layer_display), Stacked, true));
+ if (unchangeable) {
+ i->set_sensitive (false);
+ }
+
_ignore_set_layer_display = false;
items.push_back (MenuElem (_("Layers"), *layers_menu));