summaryrefslogtreecommitdiff
path: root/gtk2_ardour/streamview.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-10-22 22:10:37 +0000
committerCarl Hetherington <carl@carlh.net>2011-10-22 22:10:37 +0000
commit12f443c72109b9a6d3356610a43d01b317f3c788 (patch)
tree8b0b87a6a0e4c34cb2980e49b11994cf03a90fc1 /gtk2_ardour/streamview.cc
parent6d66f90c5c143a6c584629e495e925b4fcf7767f (diff)
Fix underflow in layer_t with rubber band selection on multiple tracks with stacked region display (#4103).
git-svn-id: svn://localhost/ardour2/branches/3.0@10286 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/streamview.cc')
-rw-r--r--gtk2_ardour/streamview.cc17
1 files changed, 15 insertions, 2 deletions
diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc
index 55e2020874..10a9b91633 100644
--- a/gtk2_ardour/streamview.cc
+++ b/gtk2_ardour/streamview.cc
@@ -523,8 +523,21 @@ StreamView::get_selectables (framepos_t start, framepos_t end, double top, doubl
if (_layer_display == Stacked) {
double const c = child_height ();
- min_layer = _layers - ((bottom - _trackview.y_position()) / c);
- max_layer = _layers - ((top - _trackview.y_position()) / c);
+
+ int const mi = _layers - ((bottom - _trackview.y_position()) / c);
+ if (mi < 0) {
+ min_layer = 0;
+ } else {
+ min_layer = mi;
+ }
+
+ int const ma = _layers - ((top - _trackview.y_position()) / c);
+ if (ma > _layers) {
+ max_layer = _layers - 1;
+ } else {
+ max_layer = ma;
+ }
+
}
for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {