#include "gtkmm2ext/actions.h"
#include "gtkmm2ext/gui_thread.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace Gtkmm2ext;
using namespace Gtk;
}
void
-UI::flush_pending ()
+UI::flush_pending (float timeout)
{
if (!caller_is_ui_thread()) {
error << "non-UI threads cannot call UI::flush_pending()"
return;
}
+ int64_t end = g_get_monotonic_time () + timeout * 1e6;
+
gtk_main_iteration();
while (gtk_events_pending()) {
+ if (timeout > 0 && end < g_get_monotonic_time ()) {
+ cerr << "UI::flush_pending timed out after " << timeout << "s.\n";
+ break;
+ }
gtk_main_iteration();
}
}