summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/video_timeline.cc1
-rw-r--r--libs/ardour/ardour/session.h1
-rw-r--r--libs/ardour/session_state.cc2
3 files changed, 4 insertions, 0 deletions
diff --git a/gtk2_ardour/video_timeline.cc b/gtk2_ardour/video_timeline.cc
index 9cd9d35315..e33f171a3c 100644
--- a/gtk2_ardour/video_timeline.cc
+++ b/gtk2_ardour/video_timeline.cc
@@ -171,6 +171,7 @@ VideoTimeLine::set_session (ARDOUR::Session *s)
SessionHandlePtr::set_session (s);
if (!_session) { return ; }
+ _session->SaveSession.connect_same_thread (*this, boost::bind (&VideoTimeLine::save_session, this));
LocaleGuard lg (X_("POSIX"));
XMLNode* node = _session->extra_xml (X_("Videotimeline"));
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index 525faa4e13..a149224607 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -397,6 +397,7 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi
PBD::Signal1<void,std::string> StateSaved;
PBD::Signal0<void> StateReady;
+ PBD::Signal0<void> SaveSession;
std::vector<std::string*>* possible_states() const;
static std::vector<std::string*>* possible_states (std::string path);
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index a713375755..4ce39340a3 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -827,6 +827,8 @@ Session::save_state (string snapshot_name, bool pending, bool switch_to_snapshot
if (!pending) {
+ SaveSession (); /* EMIT SIGNAL */
+
save_history (snapshot_name);
bool was_dirty = dirty();