diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2018-02-11 09:39:45 -0600 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2018-02-11 09:39:45 -0600 |
commit | 0299229e417ad6b8332ae3c9eafbf67a1c369727 (patch) | |
tree | 378fb89cc2c0a775a20fbdc732bbefd3818282aa /gtk2_ardour/editor_drag.cc | |
parent | e6da4c4846cd3097e2393f0e43016b870e7cf592 (diff) |
SoloSelection: gui part.
Diffstat (limited to 'gtk2_ardour/editor_drag.cc')
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index e80f28171c..39fbdca221 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -5675,12 +5675,16 @@ SelectionDrag::finished (GdkEvent* event, bool movement_occurred) /* XXX what if its a music time selection? */ if (s) { - if (s->get_play_range() && s->transport_rolling()) { - s->request_play_range (&_editor->selection->time, true); - } else if (!s->config.get_external_sync()) { - if (UIConfiguration::instance().get_follow_edits() && !s->transport_rolling()) { - s->request_locate (_editor->get_selection().time.start()); + + //if Follow Edits is on, maybe try to follow the range selection ... also consider range-audition mode + if ( !s->config.get_external_sync() && s->transport_rolling() ) { + if ( s->solo_selection_active() ) { + _editor->play_solo_selection(true); //play the newly selected range, and move solos to match + } else if ( UIConfiguration::instance().get_follow_edits() && s->get_play_range() ) { //already rolling a selected range + s->request_play_range (&_editor->selection->time, true); //play the newly selected range } + } else if ( !s->transport_rolling() && UIConfiguration::instance().get_follow_edits() ) { + s->request_locate (_editor->get_selection().time.start()); } if (_editor->get_selection().time.length() != 0) { |