summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_routes.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-01-31 20:42:22 +0100
committerRobin Gareus <robin@gareus.org>2017-01-31 20:42:33 +0100
commit6e09e72f1112bbd49a174223b82513b78d4093b6 (patch)
tree7aad9a20abc26a4703dffd0f3f962157671796d9 /gtk2_ardour/editor_routes.cc
parent353eb5601c764c28f433e3f7b29fb2ab4b478765 (diff)
Skip no-change re-ordering of tracks/busses
e.g. move top-most track up, bottom-most track down.
Diffstat (limited to 'gtk2_ardour/editor_routes.cc')
-rw-r--r--gtk2_ardour/editor_routes.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc
index cec0969863..2c39190758 100644
--- a/gtk2_ardour/editor_routes.cc
+++ b/gtk2_ardour/editor_routes.cc
@@ -1738,7 +1738,12 @@ EditorRoutes::move_selected_tracks (bool up)
};
}
- for (leading = view_stripables.begin(); leading != view_stripables.end(); ++leading) {
+ bool changed = false;
+ unsigned int i = 0;
+ for (leading = view_stripables.begin(); leading != view_stripables.end(); ++leading, ++i) {
+ if (leading->old_order != i) {
+ changed = true;
+ }
neworder.push_back (leading->old_order);
#ifndef NDEBUG
if (leading->old_order != neworder.size() - 1) {
@@ -1747,6 +1752,10 @@ EditorRoutes::move_selected_tracks (bool up)
#endif
}
+ if (!changed) {
+ return;
+ }
+
#ifndef NDEBUG
DEBUG_TRACE (DEBUG::OrderKeys, "New order after moving tracks:\n");
for (vector<int>::iterator i = neworder.begin(); i != neworder.end(); ++i) {
@@ -1755,7 +1764,6 @@ EditorRoutes::move_selected_tracks (bool up)
DEBUG_TRACE (DEBUG::OrderKeys, "-------\n");
#endif
-
_model->reorder (neworder);
if (scroll_to) {