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/editor_ops.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/editor_ops.cc')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 4b00d22b28..6c48fa4e4f 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -96,6 +96,7 @@ #include "streamview.h" #include "strip_silence_dialog.h" #include "time_axis_view.h" +#include "timers.h" #include "transpose_dialog.h" #include "transform_dialog.h" #include "ui_config.h" @@ -7887,6 +7888,7 @@ Editor::bring_in_callback (Gtk::Label* label, uint32_t n, uint32_t total, string void Editor::update_bring_in_message (Gtk::Label* label, uint32_t n, uint32_t total, string name) { + Timers::TimerSuspender t; label->set_text (string_compose ("Copying %1, %2 of %3", name, n, total)); Gtkmm2ext::UI::instance()->flush_pending (); } @@ -7907,6 +7909,7 @@ Editor::bring_all_sources_into_session () * files */ + Timers::TimerSuspender t; Gtkmm2ext::UI::instance()->flush_pending (); cerr << " Do it\n"; |