summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-05-28 21:01:49 +0000
committerCarl Hetherington <carl@carlh.net>2012-05-28 21:01:49 +0000
commit5776407b3b7cb0081f04ce3ffb8170798bc025ca (patch)
tree953bbeed7d6e3751eaea42ada2e69e653519c679 /gtk2_ardour/midi_region_view.cc
parentcc12b6bba57ca98d5db567ca2bf9536d7d772e53 (diff)
Clear selection on starting a MIDI note rubberband
selection drag; always emit SelectionCleared() from clear_selection_except even if this region's selection hasn't changed, as we still want to clear the selection in other regions. Part of #4669. git-svn-id: svn://localhost/ardour2/branches/3.0@12473 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_region_view.cc')
-rw-r--r--gtk2_ardour/midi_region_view.cc17
1 files changed, 3 insertions, 14 deletions
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index db68223908..a88230822f 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -596,8 +596,8 @@ MidiRegionView::motion (GdkEventMotion* ev)
editor.verbose_cursor()->hide ();
return true;
} else if (m == MouseObject) {
-
editor.drags()->set (new MidiRubberbandSelectDrag (dynamic_cast<Editor *> (&editor), this), (GdkEvent *) ev);
+ clear_selection ();
_mouse_state = SelectRectDragging;
return true;
} else if (m == MouseRange) {
@@ -1939,17 +1939,7 @@ MidiRegionView::delete_note (boost::shared_ptr<NoteType> n)
void
MidiRegionView::clear_selection_except (ArdourCanvas::CanvasNoteEvent* ev, bool signal)
{
- bool changed = false;
-
- if (ev && !ev->selected ()) {
- /* We're selecting this note, so the selection has changed; if
- there is nothing else currently selected, the loop below will
- not pick up on the change.
- */
- changed = true;
- }
-
- for (Selection::iterator i = _selection.begin(); i != _selection.end(); ) {
+ for (Selection::iterator i = _selection.begin(); i != _selection.end(); ) {
if ((*i) != ev) {
Selection::iterator tmp = i;
++tmp;
@@ -1957,7 +1947,6 @@ MidiRegionView::clear_selection_except (ArdourCanvas::CanvasNoteEvent* ev, bool
(*i)->set_selected (false);
(*i)->hide_velocity ();
_selection.erase (i);
- changed = true;
i = tmp;
} else {
@@ -1969,7 +1958,7 @@ MidiRegionView::clear_selection_except (ArdourCanvas::CanvasNoteEvent* ev, bool
selection.
*/
- if (changed && signal) {
+ if (signal) {
SelectionCleared (this); /* EMIT SIGNAL */
}
}