diff options
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/video_timeline.cc | 3 | ||||
-rw-r--r-- | gtk2_ardour/video_timeline.h | 2 |
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__ */ |