diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-01-29 15:02:07 +0100 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-01-29 15:03:29 +0100 |
commit | d29f6bde5ef1477a36e1e550ef5a548c5b0b1580 (patch) | |
tree | 2a731dbad98546ccc04ce6e60134c683219b0b91 /gtk2_ardour/route_time_axis.cc | |
parent | 34da2896c636a18376f0da2da8c2732f52c99461 (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.cc | 30 |
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)); |