summaryrefslogtreecommitdiff
path: root/gtk2_ardour/streamview.cc
diff options
context:
space:
mode:
authorBen Loftis <ben@harrisonconsoles.com>2015-01-09 12:20:02 -0600
committerBen Loftis <ben@harrisonconsoles.com>2015-01-09 12:21:10 -0600
commit9e0cd98ad4fc84e56640ea9a466d3fd0dbccef04 (patch)
treea6a684b8bd30f6874f0e259941678836e560955a /gtk2_ardour/streamview.cc
parenta6e45a471a2af53a58ad28e769b232075cabab92 (diff)
fix select-all-regions-within (it used to select everything overlapped)
Diffstat (limited to 'gtk2_ardour/streamview.cc')
-rw-r--r--gtk2_ardour/streamview.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc
index de94c70060..1d50a06a2e 100644
--- a/gtk2_ardour/streamview.cc
+++ b/gtk2_ardour/streamview.cc
@@ -548,7 +548,7 @@ StreamView::set_selected_regionviews (RegionSelection& regions)
* @param result Filled in with selectable things.
*/
void
-StreamView::get_selectables (framepos_t start, framepos_t end, double top, double bottom, list<Selectable*>& results)
+StreamView::get_selectables (framepos_t start, framepos_t end, double top, double bottom, list<Selectable*>& results, bool within)
{
if (_trackview.editor().internal_editing()) {
return; // Don't select regions with an internal tool
@@ -584,10 +584,17 @@ StreamView::get_selectables (framepos_t start, framepos_t end, double top, doubl
layer_t const l = (*i)->region()->layer ();
layer_ok = (min_layer <= l && l <= max_layer);
}
-
- if ((*i)->region()->coverage (start, end) != Evoral::OverlapNone && layer_ok) {
- results.push_back (*i);
+
+ if (within) {
+ if ((*i)->region()->coverage (start, end) == Evoral::OverlapExternal && layer_ok) {
+ results.push_back (*i);
+ }
+ } else {
+ if ((*i)->region()->coverage (start, end) != Evoral::OverlapNone && layer_ok) {
+ results.push_back (*i);
+ }
}
+
}
}