13
0

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
This commit is contained in:
Paul Davis 2011-03-08 01:55:50 +00:00
parent 92578ddef5
commit b88c773894
3 changed files with 9 additions and 0 deletions

View File

@ -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();

View File

@ -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;

View File

@ -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);
}
}
}