summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/video_timeline.cc3
-rw-r--r--gtk2_ardour/video_timeline.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/gtk2_ardour/video_timeline.cc b/gtk2_ardour/video_timeline.cc
index 269e465623..563a6a366e 100644
--- a/gtk2_ardour/video_timeline.cc
+++ b/gtk2_ardour/video_timeline.cc
@@ -155,6 +155,7 @@ VideoTimeLine::close_session ()
if (video_duration == 0) {
return;
}
+ sessionsave.disconnect();
save_session();
close_video_monitor();
@@ -171,7 +172,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));
+ _session->SaveSession.connect_same_thread (sessionsave, boost::bind (&VideoTimeLine::save_session, this));
LocaleGuard lg (X_("POSIX"));
XMLNode* node = _session->extra_xml (X_("Videotimeline"));
diff --git a/gtk2_ardour/video_timeline.h b/gtk2_ardour/video_timeline.h
index 559709d708..4bc3eb86c7 100644
--- a/gtk2_ardour/video_timeline.h
+++ b/gtk2_ardour/video_timeline.h
@@ -137,6 +137,8 @@ class VideoTimeLine : public sigc::trackable, public ARDOUR::SessionHandlePtr, p
PBD::Signal0<void> VtlUpdate;
PBD::Signal1<void,std::string> GuiUpdate;
void gui_update (const std::string &);
+
+ PBD::ScopedConnection sessionsave;
};
#endif /* __ardour_video_timeline_h__ */