summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-03-08 01:55:50 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-03-08 01:55:50 +0000
commitb88c77389485971c7426af925cc350f9178d7164 (patch)
tree0f56ff9d374363185d1532e4c535de50d91cfb03 /gtk2_ardour
parent92578ddef56da3232f9030588ba35c5a4d05927e (diff)
when leaving internal edit mode, if the current mode is range ("draw") and it wasn't before we entered internal edit mode, flip back to whatever it was before we entered
git-svn-id: svn://localhost/ardour2/branches/3.0@9102 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor.cc1
-rw-r--r--gtk2_ardour/editor.h1
-rw-r--r--gtk2_ardour/editor_mouse.cc7
3 files changed, 9 insertions, 0 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 22aba4681d..62897bda74 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -647,6 +647,7 @@ Editor::Editor ()
_snap_mode = SnapOff;
set_snap_mode (_snap_mode);
set_mouse_mode (MouseObject, true);
+ pre_internal_mouse_mode = MouseObject;
set_edit_point_preference (EditAtMouse, true);
_playlist_selector = new PlaylistSelector();
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 7d79d7ef3e..aefe9ac642 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -498,6 +498,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void post_zoom ();
Editing::MouseMode mouse_mode;
+ Editing::MouseMode pre_internal_mouse_mode;
bool _internal_editing;
Editing::MouseMode effective_mouse_mode () const;
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index 8a1f3dfe73..d874aba2ef 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -2657,6 +2657,8 @@ Editor::set_internal_edit (bool yn)
ARDOUR_UI::instance()->set_tip (mouse_select_button, _("Draw/Edit MIDI Notes"));
mouse_mode_toggled (mouse_mode);
+ pre_internal_mouse_mode = mouse_mode;
+
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
(*i)->enter_internal_edit_mode ();
}
@@ -2671,6 +2673,11 @@ Editor::set_internal_edit (bool yn)
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
(*i)->leave_internal_edit_mode ();
}
+
+ if (mouse_mode == MouseRange && pre_internal_mouse_mode != MouseRange) {
+ /* we were drawing .. flip back to something sensible */
+ set_mouse_mode (pre_internal_mouse_mode);
+ }
}
}