diff options
author | Ben Loftis <ben@harrisonconsoles.com> | 2014-11-19 17:27:13 -0600 |
---|---|---|
committer | Ben Loftis <ben@harrisonconsoles.com> | 2014-11-19 17:27:13 -0600 |
commit | 4ffdc99c5fee8e8f62cddd4f815b132c06c83711 (patch) | |
tree | b78b2103d9a31502fc008ab0a9b152682f81fb83 /gtk2_ardour | |
parent | e3e85a92dbb1bbca64d3e183ab9adefa32c49a6c (diff) |
fix range selection of mixer strips; shift+selecting a single strip would select from there til the end
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/mixer_ui.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 626d2f68a8..1e175d2fd3 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -676,6 +676,7 @@ Mixer_UI::strip_button_release_event (GdkEventButton *ev, MixerStrip *strip) vector<MixerStrip*> tmp; bool accumulate = false; + bool found_another = false; tmp.push_back (strip); @@ -694,6 +695,7 @@ Mixer_UI::strip_button_release_event (GdkEventButton *ev, MixerStrip *strip) /* hit selected strip. if currently accumulating others, we're done. if not accumulating others, start doing so. */ + found_another = true; if (accumulate) { /* done */ break; @@ -707,9 +709,12 @@ Mixer_UI::strip_button_release_event (GdkEventButton *ev, MixerStrip *strip) } } - for (vector<MixerStrip*>::iterator i = tmp.begin(); i != tmp.end(); ++i) { - _selection.add (*i); - } + if (found_another) { + for (vector<MixerStrip*>::iterator i = tmp.begin(); i != tmp.end(); ++i) { + _selection.add (*i); + } + } else + _selection.set (strip); //user wants to start a range selection, but there aren't any others selected yet } } else { |