X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fselection.cc;h=2e4ed8a1176caba4287e60b7d9f78199ba21ac8c;hb=f535b0f4913a9c0b31ca3b21bd717c367676ebfc;hp=82e8bbb682905adbd706ae5812b47644645e33f6;hpb=0d2c8771a7b0f70fe4cf21cfdcfca709470787c2;p=ardour.git diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc index 82e8bbb682..2e4ed8a117 100644 --- a/gtk2_ardour/selection.cc +++ b/gtk2_ardour/selection.cc @@ -33,6 +33,7 @@ #include "i18n.h" using namespace ARDOUR; +using namespace PBD; using namespace sigc; struct AudioRangeComparator { @@ -199,18 +200,29 @@ Selection::toggle (AudioRegionView* r) { AudioRegionSelection::iterator i; - cerr << "about to toggle a regionview\n"; - if ((i = find (audio_regions.begin(), audio_regions.end(), r)) == audio_regions.end()) { audio_regions.add (r); - cerr << "\tadded\n"; } else { audio_regions.erase (i); - cerr << "\tremoved\n"; } RegionsChanged (); - cerr << "done\n"; +} + +void +Selection::toggle (vector& r) +{ + AudioRegionSelection::iterator i; + + for (vector::iterator x = r.begin(); x != r.end(); ++x) { + if ((i = find (audio_regions.begin(), audio_regions.end(), (*x))) == audio_regions.end()) { + audio_regions.add ((*x)); + } else { + audio_regions.erase (i); + } + } + + RegionsChanged (); } long @@ -651,6 +663,6 @@ Selection::add (vector& autos) points.push_back (**i); delete *i; } - + PointsChanged (); }