summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2016-05-28 02:57:53 +1000
committernick_m <mainsbridge@gmail.com>2016-05-28 02:57:53 +1000
commit1c51cbcc823ab49ad87e04d5c2a7c15da1d56924 (patch)
tree66e84b98ba7e5ff764abd3733d736314518b396e /gtk2_ardour
parent9506fd884d38cd49393a8425d045be8af1683aa6 (diff)
Force snap when dragging meters.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_drag.cc6
-rw-r--r--gtk2_ardour/editor_drag.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 25eeaa3e27..251242f057 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -3118,6 +3118,7 @@ MeterMarkerDrag::MeterMarkerDrag (Editor* e, ArdourCanvas::Item* i, bool c)
: Drag (e, i)
, _copy (c)
, _old_snap_type (e->snap_type())
+ , _old_snap_mode (e->snap_mode())
, before_state (0)
{
DEBUG_TRACE (DEBUG::Drags, "New MeterMarkerDrag\n");
@@ -3185,7 +3186,7 @@ MeterMarkerDrag::motion (GdkEvent* event, bool first_move)
}
/* only snap to bars */
_editor->set_snap_to (SnapToBar);
- }
+ _editor->set_snap_mode (SnapNormal); }
framepos_t pf = adjusted_current_frame (event);
@@ -3214,6 +3215,7 @@ MeterMarkerDrag::finished (GdkEvent* event, bool movement_occurred)
/* reinstate old snap setting */
_editor->set_snap_to (_old_snap_type);
+ _editor->set_snap_mode (_old_snap_mode);
TempoMap& map (_editor->session()->tempo_map());
@@ -3233,6 +3235,8 @@ MeterMarkerDrag::aborted (bool moved)
if (moved) {
/* reinstate old snap setting */
_editor->set_snap_to (_old_snap_type);
+ _editor->set_snap_mode (_old_snap_mode);
+
_editor->session()->tempo_map().set_state (*before_state, Stateful::current_state_version);
// delete the dummy marker we used for visual representation while moving.
// a new visual marker will show up automatically.
diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h
index 6ac8285fb4..9ed07b32df 100644
--- a/gtk2_ardour/editor_drag.h
+++ b/gtk2_ardour/editor_drag.h
@@ -710,6 +710,7 @@ private:
bool _copy;
Editing::SnapType _old_snap_type;
+ Editing::SnapMode _old_snap_mode;
XMLNode* before_state;
};