summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2015-10-24 00:07:03 +1100
committernick_m <mainsbridge@gmail.com>2015-10-24 00:07:03 +1100
commit96524d863b61c9e53423f58c4348d0ebcd840eec (patch)
tree9d8f8b91810742fbb6534bbd72e54eb8a01bf7ef /gtk2_ardour
parent96c6da0804f563eb0078df73121c254ee2d33b82 (diff)
Clear point selection when uniquely selecting a note.
- Also fix selection undo when creating notes w/control in MouseContent mode.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_drag.cc11
-rw-r--r--gtk2_ardour/midi_region_view.cc3
2 files changed, 10 insertions, 4 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 53dca40476..4be15613b0 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -2381,9 +2381,11 @@ NoteResizeDrag::start_grab (GdkEvent* event, Gdk::Cursor* /*ignored*/)
/* has to be relative, may make no sense otherwise */
relative = true;
}
+
/* select this note; if it is already selected, preserve the existing selection,
otherwise make this note the only one selected.
*/
+ _editor->get_selection().clear_points();
region->note_selected (cnote, cnote->selected ());
}
@@ -5298,11 +5300,9 @@ NoteDrag::start_grab (GdkEvent* event, Gdk::Cursor *)
if (add) {
_region->note_selected (_primary, true);
} else {
+ _editor->get_selection().clear_points();
_region->unique_select (_primary);
}
-
- _editor->begin_reversible_selection_op(X_("Select Note Press"));
- _editor->commit_reversible_selection_op();
}
}
}
@@ -5419,13 +5419,16 @@ NoteDrag::finished (GdkEvent* ev, bool moved)
_region->note_deselected (_primary);
changed = true;
} else {
+ _editor->get_selection().clear_points();
_region->unique_select (_primary);
+ changed = true;
}
} else {
bool extend = Keyboard::modifier_state_equals (ev->button.state, Keyboard::TertiaryModifier);
bool add = Keyboard::modifier_state_equals (ev->button.state, Keyboard::PrimaryModifier);
if (!extend && !add && _region->selection_size() > 1) {
+ _editor->get_selection().clear_points();
_region->unique_select (_primary);
changed = true;
} else if (extend) {
@@ -5433,6 +5436,8 @@ NoteDrag::finished (GdkEvent* ev, bool moved)
changed = true;
} else {
/* it was added during button press */
+ changed = true;
+
}
}
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index ba8c72120e..d53f5adc72 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -543,7 +543,6 @@ MidiRegionView::button_release (GdkEventButton* ev)
case MouseContent:
case MouseTimeFX:
{
- clear_selection();
_mouse_changed_selection = true;
if (Keyboard::is_insert_note_event(ev)) {
@@ -562,6 +561,8 @@ MidiRegionView::button_release (GdkEventButton* ev)
beats -= Evoral::Beats::tick();
create_note_at (editor.pixel_to_sample (event_x), event_y, beats, true);
+ } else {
+ clear_selection ();
}
break;