summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui_dialogs.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-04-09 04:05:07 +0200
committerRobin Gareus <robin@gareus.org>2013-04-09 04:05:46 +0200
commited1f310f109279347906bbcb85757b5a54792e26 (patch)
treed4f1dba2351bac25b83250fffe8a6bfdfba93e61 /gtk2_ardour/ardour_ui_dialogs.cc
parent49ddf8ecce0027e5cb96de2d361aec8d74b3c921 (diff)
vtl: rework session-needs-save logic
* videotimeline now immediately marks the session dirty on every state-changing operation * video-montor is polled every 2.5 seconds for menu-relevant state info (ontop, OSD,..) and every 30 seconds for full state (window pos, size,..) * new interface to query the video-monitor for its state and wait for all replies - terminating the process and using ::wait() is no longer required * Ardour> quit and Ardour > close-session does no longer close the video session to enforce video-monitor state sync but uses above new interface
Diffstat (limited to 'gtk2_ardour/ardour_ui_dialogs.cc')
-rw-r--r--gtk2_ardour/ardour_ui_dialogs.cc10
1 files changed, 4 insertions, 6 deletions
diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc
index fb31ba513a..0cfe341211 100644
--- a/gtk2_ardour/ardour_ui_dialogs.cc
+++ b/gtk2_ardour/ardour_ui_dialogs.cc
@@ -217,11 +217,7 @@ ARDOUR_UI::unload_session (bool hide_stuff)
{
#ifdef WITH_VIDEOTIMELINE
if (_session) {
- /* close video-monitor
- * this needed to enfore querying its settings (window size,..)
- * which are reported asynchroneously.
- */
- ARDOUR_UI::instance()->video_timeline->close_session();
+ ARDOUR_UI::instance()->video_timeline->sync_session_state();
}
#endif
if (_session && _session->dirty()) {
@@ -231,7 +227,6 @@ ARDOUR_UI::unload_session (bool hide_stuff)
actions.push_back (_("Save and close"));
switch (ask_about_saving_session (actions)) {
case -1:
- ARDOUR_UI::instance()->video_timeline->set_session(_session);
// cancel
return 1;
@@ -255,6 +250,9 @@ ARDOUR_UI::unload_session (bool hide_stuff)
ActionManager::set_sensitive (ActionManager::session_sensitive_actions, false);
rec_button.set_sensitive (false);
+#ifdef WITH_VIDEOTIMELINE
+ ARDOUR_UI::instance()->video_timeline->close_session();
+#endif
stop_blinking ();
stop_clocking ();