summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_selection.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-12-29 21:04:23 -0500
committerDavid Robillard <d@drobilla.net>2014-12-29 21:04:23 -0500
commitee8dbdb0096901796da466402d29e1f7439c014f (patch)
treedf2eddeff9f09242dfab38219fc0a64f1b7aa520 /gtk2_ardour/editor_selection.cc
parent937cf046a47fdf5db16102d86ed7ee4b3ef7d677 (diff)
Fix internal select all.
Diffstat (limited to 'gtk2_ardour/editor_selection.cc')
-rw-r--r--gtk2_ardour/editor_selection.cc36
1 files changed, 14 insertions, 22 deletions
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc
index 93dd7c15fb..002785e6dc 100644
--- a/gtk2_ardour/editor_selection.cc
+++ b/gtk2_ardour/editor_selection.cc
@@ -1366,15 +1366,26 @@ Editor::select_all_in_track (Selection::Operation op)
}
}
-void
+bool
Editor::select_all_internal_edit (Selection::Operation)
{
+ bool selected = false;
+
for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) {
MidiRegionView* mrv = dynamic_cast<MidiRegionView*>(*i);
if (mrv) {
mrv->select_all_notes ();
+ selected = true;
}
}
+
+ MidiRegionView* mrv = dynamic_cast<MidiRegionView*>(entered_regionview);
+ if (mrv) {
+ mrv->select_all_notes ();
+ selected = true;
+ }
+
+ return selected;
}
void
@@ -1384,27 +1395,8 @@ Editor::select_all_objects (Selection::Operation op)
TrackViewList ts = track_views;
- if (internal_editing()) {
-
- bool midi_selected = false;
-
- for (TrackViewList::iterator iter = ts.begin(); iter != ts.end(); ++iter) {
- if ((*iter)->hidden()) {
- continue;
- }
-
- RouteTimeAxisView* rtav = dynamic_cast<RouteTimeAxisView*> (*iter);
-
- if (rtav && rtav->is_midi_track()) {
- midi_selected = true;
- break;
- }
- }
-
- if (midi_selected) {
- select_all_internal_edit (op);
- return;
- }
+ if (internal_editing() && select_all_internal_edit(op)) {
+ return; // Selected notes
}
for (TrackViewList::iterator iter = ts.begin(); iter != ts.end(); ++iter) {