From c8e00195ed4873f5b28f734330a076fcd6c8cc1c Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 13 Sep 2018 08:03:06 -0700 Subject: [PATCH] Process Qt events in the SDL loop --- app/streaming/session.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/streaming/session.cpp b/app/streaming/session.cpp index a6204650..914aa754 100644 --- a/app/streaming/session.cpp +++ b/app/streaming/session.cpp @@ -908,10 +908,13 @@ void Session::exec(int displayOriginX, int displayOriginY) int currentDisplayIndex = SDL_GetWindowDisplayIndex(m_Window); - // Hijack this thread to be the SDL main thread. We have to do this - // because we want to suspend all Qt processing until the stream is over. + // Hijack this thread to be the SDL main thread, but also process + // Qt events in each iteration to allow us to use Qt classes. SDL_Event event; for (;;) { + // Process Qt events + QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents); + // We explicitly use SDL_PollEvent() and SDL_Delay() because // SDL_WaitEvent() has an internal SDL_Delay(10) inside which // blocks this thread too long for high polling rate mice and high