From 48da03e301c8145f9568df0692001652ea31b796 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 18 Jan 2017 05:14:48 +0100 Subject: [PATCH] push sorted Stripable order back to PI (for control surfaces) --- gtk2_ardour/editor_routes.cc | 8 ++++++++ gtk2_ardour/mixer_ui.cc | 8 ++++++++ gtk2_ardour/route_sorter.h | 2 ++ 3 files changed, 18 insertions(+) diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc index 5c32330139..fe1e5af62b 100644 --- a/gtk2_ardour/editor_routes.cc +++ b/gtk2_ardour/editor_routes.cc @@ -1079,6 +1079,14 @@ EditorRoutes::sync_presentation_info_from_treeview () change = true; } } + if (change) { + n = 0; + for (OrderingKeys::iterator sr = sorted.begin(); sr != sorted.end(); ++sr, ++n) { + if (sr->stripable->presentation_info().order() != n) { + sr->stripable->set_presentation_order (n, false); + } + } + } } if (change) { diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 4f87e04c7a..766f39ddf3 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -761,6 +761,14 @@ Mixer_UI::sync_presentation_info_from_treeview () change = true; } } + if (change) { + n = 0; + for (OrderingKeys::iterator sr = sorted.begin(); sr != sorted.end(); ++sr, ++n) { + if (sr->stripable->presentation_info().order() != n) { + sr->stripable->set_presentation_order (n, false); + } + } + } } if (change) { diff --git a/gtk2_ardour/route_sorter.h b/gtk2_ardour/route_sorter.h index bba7424dc1..bf054b1ad4 100644 --- a/gtk2_ardour/route_sorter.h +++ b/gtk2_ardour/route_sorter.h @@ -30,9 +30,11 @@ struct OrderKeys { uint32_t old_display_order; uint32_t new_display_order; uint32_t compare_order; + boost::shared_ptr stripable; OrderKeys (uint32_t ok, boost::shared_ptr s, uint32_t cmp_max) : old_display_order (ok) + , stripable (s) { new_display_order = s->presentation_info().order(); compare_order = new_display_order; -- 2.30.2