/* 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 ());
}
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();
}
}
}
_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) {
changed = true;
} else {
/* it was added during button press */
+ changed = true;
+
}
}
case MouseContent:
case MouseTimeFX:
{
- clear_selection();
_mouse_changed_selection = true;
if (Keyboard::is_insert_note_event(ev)) {
beats -= Evoral::Beats::tick();
create_note_at (editor.pixel_to_sample (event_x), event_y, beats, true);
+ } else {
+ clear_selection ();
}
break;