From 098e8e551a8561fa3c2d8868df2f325f2be3a90d Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 18 May 2016 20:06:20 +0200 Subject: [PATCH] Don't save instant while loading instant.xml opening a recent session from a session can result in: Editor::constructed and session_loaded() being true. A partial instant_save can occur (not to mention: invalid XMLnode iterators) --- gtk2_ardour/editor.cc | 4 +++- gtk2_ardour/editor.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 14021d7e45..edc1aa4478 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -436,6 +436,7 @@ Editor::Editor () , show_gain_after_trim (false) , selection_op_cmd_depth (0) , selection_op_history_it (0) + , no_save_instant (false) , current_timefx (0) , current_mixer_strip (0) , show_editor_mixer_when_tracks_arrive (false) @@ -949,7 +950,7 @@ Editor::set_entered_track (TimeAxisView* tav) void Editor::instant_save () { - if (!constructed || !ARDOUR_UI::instance()->session_loaded) { + if (!constructed || !ARDOUR_UI::instance()->session_loaded || no_save_instant) { return; } @@ -2289,6 +2290,7 @@ Editor::set_state (const XMLNode& node, int version) { XMLProperty const * prop; set_id (node); + PBD::Unwinder nsi (no_save_instant, true); Tabbable::set_state (node, version); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index fbe3f11741..665e9cc54c 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -1975,6 +1975,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD void update_title_s (const std::string & snapshot_name); void instant_save (); + bool no_save_instant; boost::shared_ptr last_audition_region;