diff options
author | nick_m <mainsbridge@gmail.com> | 2015-06-11 01:36:34 +1000 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-06-11 01:36:34 +1000 |
commit | b3a4c88e0effab2f7ccdacbe30f571e29f94a09a (patch) | |
tree | 550ef8099ef597166a5be656d3f86d8371444e91 /gtk2_ardour/editor_drag.cc | |
parent | 9563e75cca3b7a54f66dd7a7eeed2a5dad415af4 (diff) |
Make absolute snap the default snap.
- also fixes a couple of absolute snap bugs wrt midi notes.
Diffstat (limited to 'gtk2_ardour/editor_drag.cc')
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 00811f6eea..9d2c53964e 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -339,10 +339,10 @@ frameoffset_t Drag::snap_delta (guint state) const { if (ArdourKeyboard::indicates_snap_delta (state)) { - return 0; + return _snap_delta; } - return _snap_delta; + return 0; } double @@ -2410,7 +2410,7 @@ NoteResizeDrag::motion (GdkEvent* event, bool /*first_move*/) if (mrv) { double sd = 0.0; bool snap = true; - bool apply_snap_delta = !ArdourKeyboard::indicates_snap_delta (event->button.state); + bool apply_snap_delta = ArdourKeyboard::indicates_snap_delta (event->button.state); if (ArdourKeyboard::indicates_snap (event->button.state)) { if (_editor->snap_mode () != SnapOff) { @@ -2420,7 +2420,7 @@ NoteResizeDrag::motion (GdkEvent* event, bool /*first_move*/) if (_editor->snap_mode () == SnapOff) { snap = false; /* inverted logic here - we;re in snapoff but we've pressed the snap delta modifier */ - if (!apply_snap_delta) { + if (apply_snap_delta) { snap = true; } } @@ -2445,7 +2445,7 @@ NoteResizeDrag::finished (GdkEvent* event, bool /*movement_occurred*/) MidiRegionView* mrv = dynamic_cast<MidiRegionView*>(*r); double sd = 0.0; bool snap = true; - bool apply_snap_delta = !ArdourKeyboard::indicates_snap_delta (event->button.state); + bool apply_snap_delta = ArdourKeyboard::indicates_snap_delta (event->button.state); if (mrv) { if (ArdourKeyboard::indicates_snap (event->button.state)) { if (_editor->snap_mode () != SnapOff) { @@ -2455,7 +2455,7 @@ NoteResizeDrag::finished (GdkEvent* event, bool /*movement_occurred*/) if (_editor->snap_mode () == SnapOff) { snap = false; /* inverted logic here - we;re in snapoff but we've pressed the snap delta modifier */ - if (!apply_snap_delta) { + if (apply_snap_delta) { snap = true; } } @@ -5278,7 +5278,13 @@ NoteDrag::total_dx (const guint state) const } } - return _region->snap_frame_to_frame (st - rp, snap) + rp - n - snap_delta (state); + frameoffset_t ret; + if (snap) { + ret = _region->snap_frame_to_frame (st - rp, snap) + rp - n - snap_delta (state); + } else { + ret = st - n - snap_delta (state); + } + return ret; } /** @return Current total drag y change in note number */ |