diff options
author | Robin Gareus <robin@gareus.org> | 2015-10-30 15:54:54 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-10-30 15:55:27 +0100 |
commit | 4a3413f2d46cd948d5c11ba2010f22f55d2eb55f (patch) | |
tree | 7f45449a5b9eacc2a4240f7d47d08cec18c0184f /gtk2_ardour/ardour_ui.cc | |
parent | 4fa564c03b8839615753d120c127639ee7f02241 (diff) |
suspend timers while flushing the gtk-event queue.
This fixes an issues where Ardour never completes to flush the GUI event
queue due to rapid updates for meters and similar events.
ARDOUR_UI::load_session() never returned and the complete session
ran inside Gtkmm2ext::UI::flush_pending(), this later causes a crash
at exit.
as side effect, this also speeds up session load.
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 1291023f1b..15106d79ef 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -3204,7 +3204,10 @@ ARDOUR_UI::load_session (const std::string& path, const std::string& snap_name, fst_stop_threading(); #endif - flush_pending (); + { + Timers::TimerSuspender t; + flush_pending (); + } #ifdef WINDOWS_VST_SUPPORT fst_start_threading(); |