diff options
author | nick_m <mainsbridge@gmail.com> | 2016-05-28 00:48:18 +1000 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2016-05-28 00:48:18 +1000 |
commit | b9f70334b6cfc067022c7f11379be8407d18dd22 (patch) | |
tree | 71ed9e74f45cd80f7c2b0584929fcab1e873d9e2 /gtk2_ardour | |
parent | 10228a4bc3f9d0f1c948a76fbb8a17a749ca949b (diff) |
Dragging a meter sets editor snap type to bars during drag.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 11 | ||||
-rw-r--r-- | gtk2_ardour/editor_drag.h | 1 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 69b7060884..e9b3ad15a6 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -3115,8 +3115,9 @@ TrimDrag::setup_pointer_frame_offset () } MeterMarkerDrag::MeterMarkerDrag (Editor* e, ArdourCanvas::Item* i, bool c) - : Drag (e, i), - _copy (c) + : Drag (e, i) + , _copy (c) + , _old_snap_type (e->snap_type()) , before_state (0) { DEBUG_TRACE (DEBUG::Drags, "New MeterMarkerDrag\n"); @@ -3143,7 +3144,6 @@ void MeterMarkerDrag::motion (GdkEvent* event, bool first_move) { if (first_move) { - // create a dummy marker to catch events, then hide it. char name[64]; @@ -3183,6 +3183,8 @@ MeterMarkerDrag::motion (GdkEvent* event, bool first_move) , beat, bbt, map.frame_at_bbt (bbt), _real_section->position_lock_style()); } + /* only snap to bars */ + _editor->set_snap_to (SnapToBar); } framepos_t pf = adjusted_current_frame (event); @@ -3210,6 +3212,9 @@ MeterMarkerDrag::finished (GdkEvent* event, bool movement_occurred) return; } + /* reinstate old snap setting */ + _editor->set_snap_to (_old_snap_type); + TempoMap& map (_editor->session()->tempo_map()); XMLNode &after = map.get_state(); diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h index abec31a00b..6ac8285fb4 100644 --- a/gtk2_ardour/editor_drag.h +++ b/gtk2_ardour/editor_drag.h @@ -709,6 +709,7 @@ private: ARDOUR::MeterSection* _real_section; bool _copy; + Editing::SnapType _old_snap_type; XMLNode* before_state; }; |