diff options
author | nick_m <mainsbridge@gmail.com> | 2013-10-26 02:37:45 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2013-10-26 02:37:45 +1100 |
commit | e80d66c9085a5e5acaa75de54712b32acea082a9 (patch) | |
tree | 834e40686775ced71e27db27f8e4baccac44842a /gtk2_ardour | |
parent | a18db90264a91a5fe80b5993511c960329964742 (diff) |
Use add_route_dialog's transient_for() window to determine track selection for order_hint.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 46308fed98..0261266566 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -3231,17 +3231,18 @@ ARDOUR_UI::setup_order_hint () we want the new routes to have their order keys set starting from the highest order key in the selection + 1 (if available). */ - - for (RouteUISelection::iterator s = mixer->selection().routes.begin(); s != mixer->selection().routes.end(); ++s) { - if ((*s)->route()->order_key() > order_hint) { - order_hint = (*s)->route()->order_key(); + if (add_route_dialog->get_transient_for () == mixer->get_toplevel()) { + for (RouteUISelection::iterator s = mixer->selection().routes.begin(); s != mixer->selection().routes.end(); ++s) { + if ((*s)->route()->order_key() > order_hint) { + order_hint = (*s)->route()->order_key(); + } } - } - - for (TrackSelection::iterator s = editor->get_selection().tracks.begin(); s != editor->get_selection().tracks.end(); ++s) { - RouteTimeAxisView* tav = dynamic_cast<RouteTimeAxisView*> (*s); - if (tav->route()->order_key() > order_hint) { - order_hint = tav->route()->order_key(); + } else { + for (TrackSelection::iterator s = editor->get_selection().tracks.begin(); s != editor->get_selection().tracks.end(); ++s) { + RouteTimeAxisView* tav = dynamic_cast<RouteTimeAxisView*> (*s); + if (tav->route()->order_key() > order_hint) { + order_hint = tav->route()->order_key(); + } } } @@ -3282,6 +3283,7 @@ ARDOUR_UI::add_route (Gtk::Window* float_window) } if (float_window) { + add_route_dialog->unset_transient_for (); add_route_dialog->set_transient_for (*float_window); } |