summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor.cc7
-rw-r--r--gtk2_ardour/editor_ops.cc12
2 files changed, 15 insertions, 4 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 4efab64760..9ef72728f2 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -2929,10 +2929,13 @@ Editor::set_selected_track (TimeAxisView& view, Selection::Operation op, bool no
for some reason.
*/
- if (selection->tracks.size() <= 1 || !no_remove) {
+ if (selection->tracks.empty()) {
selection->set (&view);
+ commit = true;
+ } else if (selection->tracks.size() == 1 || !no_remove) {
+ selection->set (&view);
+ commit = true;
}
- commit = true;
}
break;
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index e61f707028..dda9d36b0e 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -1375,13 +1375,21 @@ Editor::invert_selection ()
bool
Editor::select_all_within (nframes_t start, nframes_t end, double top, double bot, Selection::Operation op)
{
- list<Selectable *> touched;
-
+ list<Selectable*> touched;
+ list<Selectable*>::size_type n = 0;
+
for (TrackViewList::iterator iter = track_views.begin(); iter != track_views.end(); ++iter) {
if ((*iter)->hidden()) {
continue;
}
+
+ n = touched.size();
+
(*iter)->get_selectables (start, end, top, bot, touched);
+
+ if (n != touched.size()) {
+ selection->add (*iter);
+ }
}
begin_reversible_command (_("select all within"));