From 57590aaca3044319428be0623d5406955b51c86d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 13 Jun 2012 18:01:29 +0000 Subject: [PATCH] Make y position of MIDI note drags slightly better. git-svn-id: svn://localhost/ardour2/branches/3.0@12707 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_drag.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index ce785af188..e5eb7630c0 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -3999,7 +3999,15 @@ NoteDrag::total_dx () const int8_t NoteDrag::total_dy () const { - return ((int8_t) (grab_y() / _note_height)) - ((int8_t) (_drags->current_pointer_y() / _note_height)); + MidiStreamView* msv = _region->midi_stream_view (); + double const y = _region->midi_view()->y_position (); + /* new current note */ + uint8_t n = msv->y_to_note (_drags->current_pointer_y () - y); + /* clamp */ + n = max (msv->lowest_note(), n); + n = min (msv->highest_note(), n); + /* and work out delta */ + return n - msv->y_to_note (grab_y() - y); } void