summaryrefslogtreecommitdiff
path: root/gtk2_ardour/route_time_axis.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/route_time_axis.cc')
-rw-r--r--gtk2_ardour/route_time_axis.cc33
1 files changed, 18 insertions, 15 deletions
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index e723aeee40..6d09fe8792 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -231,7 +231,6 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session* sess, boost::sh
plist->add (ARDOUR::Properties::solo, true);
route_group_menu = new RouteGroupMenu (_session, plist);
- route_group_menu->GroupSelected.connect (sigc::mem_fun (*this, &RouteTimeAxisView::set_route_group_from_menu));
gm.get_gain_slider().signal_scroll_event().connect(sigc::mem_fun(*this, &RouteTimeAxisView::controls_ebox_scroll), false);
gm.get_gain_slider().set_name ("TrackGainFader");
@@ -280,25 +279,16 @@ RouteTimeAxisView::route_group_click (GdkEventButton *ev)
return false;
}
- route_group_menu->build (_route->route_group ());
+ WeakRouteList r;
+ r.push_back (route ());
+
+ route_group_menu->build (r);
route_group_menu->menu()->popup (ev->button, ev->time);
return false;
}
void
-RouteTimeAxisView::set_route_group_from_menu (RouteGroup *eg)
-{
- if (eg) {
- eg->add (_route);
- } else {
- if (_route->route_group()) {
- _route->route_group()->remove (_route);
- }
- }
-}
-
-void
RouteTimeAxisView::playlist_changed ()
{
label_view ();
@@ -609,7 +599,20 @@ RouteTimeAxisView::build_display_menu ()
items.back().set_sensitive (_editor.get_selection().tracks.size() <= 1);
route_group_menu->detach ();
- route_group_menu->build (_route->route_group ());
+
+ WeakRouteList r;
+ for (TrackSelection::iterator i = _editor.get_selection().tracks.begin(); i != _editor.get_selection().tracks.end(); ++i) {
+ RouteTimeAxisView* rtv = dynamic_cast<RouteTimeAxisView*> (*i);
+ if (rtv) {
+ r.push_back (rtv->route ());
+ }
+ }
+
+ if (r.empty ()) {
+ r.push_back (route ());
+ }
+
+ route_group_menu->build (r);
items.push_back (MenuElem (_("Route Group"), *route_group_menu->menu ()));
build_automation_action_menu ();