summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_mouse.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-02-13 14:34:21 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-02-13 14:34:21 +0000
commit671ec99bac183b84f43dc4c2114b9b93fca3aee0 (patch)
tree809edcb592aaa1a5633863fae5e0f6d96ba93eb3 /gtk2_ardour/editor_mouse.cc
parent8ef8bfc64ffba6d87cdb8ffcd6ecd535e2391641 (diff)
(1) remove magic number voodoo when saving zoom focus/snap settings to instant.xml etc. (this has a minor breaking-behaviour for existing sessions etc (2) keep track of grid type/settings in and out of note edit mode and switch back and forth, thus allowing independent grids while working at the note or region level
git-svn-id: svn://localhost/ardour2/branches/3.0@11486 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_mouse.cc')
-rw-r--r--gtk2_ardour/editor_mouse.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index 16f87d920d..a3a563340f 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -2705,16 +2705,29 @@ Editor::escape ()
void
Editor::set_internal_edit (bool yn)
{
+ if (_internal_editing == yn) {
+ return;
+ }
+
_internal_editing = yn;
if (yn) {
pre_internal_mouse_mode = mouse_mode;
+ pre_internal_snap_type = _snap_type;
+ pre_internal_snap_mode = _snap_mode;
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
(*i)->enter_internal_edit_mode ();
}
+ set_snap_to (internal_snap_type);
+ set_snap_mode (internal_snap_mode);
+
} else {
+
+ internal_snap_mode = _snap_mode;
+ internal_snap_type = _snap_type;
+
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
(*i)->leave_internal_edit_mode ();
}
@@ -2723,6 +2736,9 @@ Editor::set_internal_edit (bool yn)
/* we were drawing .. flip back to something sensible */
set_mouse_mode (pre_internal_mouse_mode);
}
+
+ set_snap_to (pre_internal_snap_type);
+ set_snap_mode (pre_internal_snap_mode);
}
set_canvas_cursor ();