diff --git a/gtk2_ardour/trigger_page.cc b/gtk2_ardour/trigger_page.cc index f79ce715ed..482b03619c 100644 --- a/gtk2_ardour/trigger_page.cc +++ b/gtk2_ardour/trigger_page.cc @@ -451,9 +451,20 @@ TriggerPage::remove_route (TriggerStrip* ra) redisplay_track_list (); } +struct TriggerStripSorter { + bool operator() (const TriggerStrip* ts_a, const TriggerStrip* ts_b) + { + boost::shared_ptr const& a = ts_a->stripable (); + boost::shared_ptr const& b = ts_b->stripable (); + return ARDOUR::Stripable::Sorter () (a, b); + } +}; + void TriggerPage::redisplay_track_list () { + _strips.sort (TriggerStripSorter ()); + for (list::iterator i = _strips.begin (); i != _strips.end (); ++i) { TriggerStrip* strip = *i; boost::shared_ptr s = strip->stripable (); @@ -501,7 +512,9 @@ TriggerPage::parameter_changed (string const& p) void TriggerPage::pi_property_changed (PBD::PropertyChange const& what_changed) { - /* static signal, not yet used */ + if (what_changed.contains (ARDOUR::Properties::order)) { + redisplay_track_list (); + } } void