From cc351b97a986fca48a6b3b631a292bf24efc5e41 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 9 Jul 2009 15:43:38 +0000 Subject: Fix collection of route groups. git-svn-id: svn://localhost/ardour2/branches/3.0@5342 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_route_groups.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'gtk2_ardour/editor_route_groups.cc') diff --git a/gtk2_ardour/editor_route_groups.cc b/gtk2_ardour/editor_route_groups.cc index 89c87ee32f..ecb4efc055 100644 --- a/gtk2_ardour/editor_route_groups.cc +++ b/gtk2_ardour/editor_route_groups.cc @@ -666,6 +666,12 @@ EditorRouteGroups::connect_to_session (Session* s) groups_changed (); } +struct CollectSorter { + bool operator () (Route* a, Route* b) { + return a->order_key (N_ ("editor")) < b->order_key (N_ ("editor")); + } +}; + /** Collect all members of a RouteGroup so that they are together in the Editor. * @param g Group to collect. */ @@ -673,6 +679,7 @@ void EditorRouteGroups::collect (RouteGroup* g) { list routes = g->route_list (); + routes.sort (CollectSorter ()); int const N = routes.size (); list::iterator i = routes.begin (); @@ -689,7 +696,7 @@ EditorRouteGroups::collect (RouteGroup* g) int const k = r->order_key (N_ ("editor")); if (*i == r.get()) { - + if (coll == -1) { coll = k; diff = N - 1; -- cgit v1.2.3