diff --git a/src/qt/evtloop.cpp b/src/qt/evtloop.cpp index 132d6533c2..d15ec1ed10 100644 --- a/src/qt/evtloop.cpp +++ b/src/qt/evtloop.cpp @@ -131,10 +131,17 @@ void wxQtEventLoopBase::WakeUp() void wxQtEventLoopBase::DoYieldFor(long eventsToProcess) { - while (wxTheApp && wxTheApp->Pending()) - // TODO: implement event filtering using the eventsToProcess mask - wxTheApp->Dispatch(); + QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents; + + if ( !(eventsToProcess & wxEVT_CATEGORY_USER_INPUT) ) + flags |= QEventLoop::ExcludeUserInputEvents; + + if ( !(eventsToProcess & wxEVT_CATEGORY_SOCKET) ) + flags |= QEventLoop::ExcludeSocketNotifiers; + + m_qtEventLoop->processEvents(flags); + wxEventLoopBase::DoYieldFor(eventsToProcess); }