summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-10-30 15:54:54 +0100
committerRobin Gareus <robin@gareus.org>2015-10-30 15:55:27 +0100
commit4a3413f2d46cd948d5c11ba2010f22f55d2eb55f (patch)
tree7f45449a5b9eacc2a4240f7d47d08cec18c0184f /gtk2_ardour/ardour_ui.cc
parent4fa564c03b8839615753d120c127639ee7f02241 (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.cc5
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();