summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_ops.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-01-18 03:06:15 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-01-18 03:06:15 +0000
commit143983948ecbdc9e9e4c4f3fe2541b2bea22be87 (patch)
tree02330d1cbe5fc4f52ff2edc6ee2dab954f9077c1 /gtk2_ardour/editor_ops.cc
parent6b0e0e379b763795f1356d9fe5cce836350dd18d (diff)
more fun and games with selection logic
git-svn-id: svn://localhost/ardour2/trunk@1353 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_ops.cc')
-rw-r--r--gtk2_ardour/editor_ops.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index dda9d36b0e..db94e44fe6 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -1377,6 +1377,7 @@ Editor::select_all_within (nframes_t start, nframes_t end, double top, double bo
{
list<Selectable*> touched;
list<Selectable*>::size_type n = 0;
+ TrackViewList touched_tracks;
for (TrackViewList::iterator iter = track_views.begin(); iter != track_views.end(); ++iter) {
if ((*iter)->hidden()) {
@@ -1388,10 +1389,15 @@ Editor::select_all_within (nframes_t start, nframes_t end, double top, double bo
(*iter)->get_selectables (start, end, top, bot, touched);
if (n != touched.size()) {
- selection->add (*iter);
+ touched_tracks.push_back (*iter);
}
}
+ if (!touched_tracks.empty()) {
+ selection->clear_tracks();
+ selection->set (touched_tracks);
+ }
+
begin_reversible_command (_("select all within"));
switch (op) {
case Selection::Add: