summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-04-20 23:48:49 +0000
committerCarl Hetherington <carl@carlh.net>2011-04-20 23:48:49 +0000
commit8fc896a24d9d9f01dd447ef65f31777ab7c4a34a (patch)
tree3aeaf9e3508e3add1f7aad7c1540ba91834bd00a /gtk2_ardour/midi_region_view.cc
parente90e1cc771ac3c660e136db0cdc03e39524da895 (diff)
Clean up duplicate snap-related code.
git-svn-id: svn://localhost/ardour2/branches/3.0@9397 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_region_view.cc')
-rw-r--r--gtk2_ardour/midi_region_view.cc19
1 files changed, 5 insertions, 14 deletions
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 7b9bb4ae30..07beeafa72 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -511,11 +511,7 @@ MidiRegionView::motion (GdkEventMotion* ev)
group->w2i(event_x, event_y);
// convert event_x to global frame
- event_frame = trackview.editor().pixel_to_frame(event_x) + _region->position();
- trackview.editor().snap_to(event_frame);
-
- // convert event_frame back to local coordinates relative to position
- event_frame -= _region->position();
+ event_frame = snap_pixel_to_frame (event_x);
if (!_ghost_note && trackview.editor().current_mouse_mode() != MouseRange
&& Keyboard::modifier_state_contains (ev->state, Keyboard::insert_note_modifier())
@@ -811,7 +807,7 @@ MidiRegionView::create_note_at(double x, double y, double length, bool sh)
assert(note <= 127.0);
// Start of note in frames relative to region start
- framepos_t const start_frames = snap_frame_to_frame(trackview.editor().pixel_to_frame(x));
+ framepos_t const start_frames = snap_pixel_to_frame (x);
assert(start_frames >= 0);
// Snap length
@@ -2231,11 +2227,8 @@ MidiRegionView::note_dropped(CanvasNoteEvent *, frameoffset_t dt, int8_t dnote)
framepos_t
MidiRegionView::snap_pixel_to_frame(double x)
{
- PublicEditor& editor = trackview.editor();
- // x is region relative, convert it to global absolute frames
- framepos_t frame = editor.pixel_to_frame(x) + _region->position();
- editor.snap_to(frame);
- return frame - _region->position(); // convert back to region relative
+ PublicEditor& editor (trackview.editor());
+ return snap_frame_to_frame (editor.pixel_to_frame (x));
}
/** Snap a frame offset within our region using the current snap settings.
@@ -3158,9 +3151,7 @@ MidiRegionView::update_ghost_note (double x, double y)
_last_ghost_y = y;
_note_group->w2i (x, y);
- framepos_t f = trackview.editor().pixel_to_frame (x) + _region->position ();
- trackview.editor().snap_to (f);
- f -= _region->position ();
+ framepos_t const f = snap_pixel_to_frame (x);
bool success;
Evoral::MusicalTime beats = trackview.editor().get_grid_type_as_beats (success, f);