summaryrefslogtreecommitdiff
path: root/gtk2_ardour/selection.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-08-20 22:46:15 +0000
committerCarl Hetherington <carl@carlh.net>2010-08-20 22:46:15 +0000
commitfac369084222360526fc86f0c72be87b574abc7d (patch)
treead48ae4e993a274907d13338590c7ff12c6d0461 /gtk2_ardour/selection.cc
parent822ee79d840f20036b5729277f90e641cb0bb06f (diff)
Fix my broken logic for control point selection.
git-svn-id: svn://localhost/ardour2/branches/3.0@7663 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/selection.cc')
-rw-r--r--gtk2_ardour/selection.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc
index c9d12f0694..5b1bba1f3c 100644
--- a/gtk2_ardour/selection.cc
+++ b/gtk2_ardour/selection.cc
@@ -936,7 +936,15 @@ Selection::set (ControlPoint* cp)
return;
}
- points.clear ();
+ /* We're going to set up the PointSelection from the selected ControlPoints
+ on this point's line, so we need to deselect all ControlPoints before
+ we re-add this one.
+ */
+
+ for (uint32_t i = 0; i < cp->line().npoints(); ++i) {
+ cp->line().nth (i)->set_selected (false);
+ }
+
vector<ControlPoint*> cps;
cps.push_back (cp);
add (cps);