summaryrefslogtreecommitdiff
path: root/gtk2_ardour/canvas-note-event.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-08-18 02:37:57 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-08-18 02:37:57 +0000
commitb116282bbb91404f5772643473485e23946a9b40 (patch)
treef7e7239e4a10a9a9df1a1274dedb0bae781e513c /gtk2_ardour/canvas-note-event.cc
parent3162ffb4f418d85088d53d5e0a4a5d6ce7235e04 (diff)
make shift-click for extend-selection sort-of work for MIDI
git-svn-id: svn://localhost/ardour2/branches/3.0@5541 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas-note-event.cc')
-rw-r--r--gtk2_ardour/canvas-note-event.cc21
1 files changed, 10 insertions, 11 deletions
diff --git a/gtk2_ardour/canvas-note-event.cc b/gtk2_ardour/canvas-note-event.cc
index 20e0880f05..145ee5e0ba 100644
--- a/gtk2_ardour/canvas-note-event.cc
+++ b/gtk2_ardour/canvas-note-event.cc
@@ -325,22 +325,21 @@ CanvasNoteEvent::on_event(GdkEvent* ev)
case Pressed: // Clicked
if (editor.current_mouse_mode() == Editing::MouseRange) {
_state = None;
- if (_selected && !select_mod && _region.selection_size() > 1) {
- _region.unique_select(this);
- } else if (_selected) {
+ if (_selected) {
_region.note_deselected(this, select_mod);
} else {
- _region.note_selected(this, select_mod);
+ bool extend = Keyboard::modifier_state_equals (ev->motion.state, Keyboard::TertiaryModifier);
+ bool add = Keyboard::modifier_state_equals (ev->motion.state, Keyboard::PrimaryModifier);
+
+ if (!extend && !add && _region.selection_size() > 1) {
+ _region.unique_select(this);
+ } else {
+ _region.note_selected (this, (extend ? true : add), extend);
+ }
}
-#if 0
- } else if (midi_edit_mode == Editing::MidiEditErase) {
- _region.start_delta_command();
- _region.command_remove_note(this);
- _region.apply_command();
-#endif
}
-
return true;
+
case Dragging: // Dropped
_item->ungrab(ev->button.time);
_state = None;