_cumulative_dx += tdx;
_cumulative_dy += tdy;
- _region->move_selection (tdx, tdy, _cumulative_dy);
+ int8_t note_delta = total_dy();
+
+ _region->move_selection (tdx, tdy, note_delta);
char buf[12];
- snprintf (buf, sizeof (buf), "%s (%d)", Evoral::midi_note_name (_primary->note()->note() + dy).c_str(),
- (int) floor (_primary->note()->note() + dy));
+ snprintf (buf, sizeof (buf), "%s (%d)", Evoral::midi_note_name (_primary->note()->note() + note_delta).c_str(),
+ (int) floor (_primary->note()->note() + note_delta));
_editor->show_verbose_canvas_cursor_with (buf);
}
, _step_edit_cursor (0)
, _step_edit_cursor_width (1.0)
, _step_edit_cursor_position (0.0)
- , _earliest_selected_time (Evoral::MaxMusicalTime)
, _mouse_state(None)
, _pressed_button(0)
, _sort_needed (true)
, _diff_command(0)
, _ghost_note(0)
, _drag_rect (0)
- , _earliest_selected_time (Evoral::MaxMusicalTime)
, _mouse_state(None)
, _pressed_button(0)
, _sort_needed (true)
, _diff_command(0)
, _ghost_note(0)
, _drag_rect (0)
- , _earliest_selected_time (Evoral::MaxMusicalTime)
, _mouse_state(None)
, _pressed_button(0)
, _sort_needed (true)
, _diff_command(0)
, _ghost_note(0)
, _drag_rect (0)
- , _earliest_selected_time (Evoral::MaxMusicalTime)
, _mouse_state(None)
, _pressed_button(0)
, _sort_needed (true)
}
_selection.clear();
- _earliest_selected_time = Evoral::MaxMusicalTime;
}
void
} else {
/* find end of latest note selected, select all between that and the start of "ev" */
- Evoral::MusicalTime earliest = DBL_MAX;
+ Evoral::MusicalTime earliest = Evoral::MaxMusicalTime;
Evoral::MusicalTime latest = 0;
for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) {
ev->set_selected (false);
ev->hide_velocity ();
-
- if (Evoral::musical_time_equal (ev->note()->time(), _earliest_selected_time)) {
-
- _earliest_selected_time = Evoral::MaxMusicalTime;
-
- /* compute new earliest time */
-
- for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) {
- if (!Evoral::musical_time_equal ((*i)->note()->time(), _earliest_selected_time) &&
- (*i)->note()->time() < _earliest_selected_time) {
- _earliest_selected_time = (*i)->note()->time();
- }
- }
- }
-
if (_selection.empty()) {
PublicEditor& editor (trackview.editor());
editor.get_selection().remove (this);
- _earliest_selected_time = Evoral::MaxMusicalTime;
}
}
if (_selection.insert (ev).second) {
ev->set_selected (true);
play_midi_note ((ev)->note());
-
- if (ev->note()->time() < _earliest_selected_time) {
- _earliest_selected_time = ev->note()->time();
- }
}
if (add_mrv_selection) {
{
typedef vector<boost::shared_ptr<NoteType> > PossibleChord;
PossibleChord to_play;
+ Evoral::MusicalTime earliest = Evoral::MaxMusicalTime;
+
+ for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) {
+ if ((*i)->note()->time() < earliest) {
+ earliest = (*i)->note()->time();
+ }
+ }
for (Selection::iterator i = _selection.begin(); i != _selection.end(); ++i) {
- if (Evoral::musical_time_equal ((*i)->note()->time(), _earliest_selected_time)) {
+ if (Evoral::musical_time_equal ((*i)->note()->time(), earliest)) {
to_play.push_back ((*i)->note());
}
(*i)->move_event(dx, dy);