summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-04-09 03:47:47 +0200
committerRobin Gareus <robin@gareus.org>2013-04-09 04:05:42 +0200
commit49ddf8ecce0027e5cb96de2d361aec8d74b3c921 (patch)
tree3f755cda24e61af7b2f474e490ed06d16793b14f /gtk2_ardour
parent8a3ebe7510195b7d7f2c3eba3ae75b0e76b8db70 (diff)
vtl: disconnect from session-save signal
the videotimeline is a global unique instance that is allocated during startup and deleted on exit. The Scopedconnection is not deleted with the session.
Diffstat (limited to 'gtk2_ardour')
-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__ */