diff options
author | Robin Gareus <robin@gareus.org> | 2013-04-09 04:05:07 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-04-09 04:05:46 +0200 |
commit | ed1f310f109279347906bbcb85757b5a54792e26 (patch) | |
tree | d4f1dba2351bac25b83250fffe8a6bfdfba93e61 /gtk2_ardour/ardour_ui_dialogs.cc | |
parent | 49ddf8ecce0027e5cb96de2d361aec8d74b3c921 (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.cc | 10 |
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 (); |