X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e48a3055145e5d3f77b17383ed7521585ea7391d..b2b4f8c0ca2884f99a923d30b4b37b12c76e936b:/src/dfb/evtloop.cpp diff --git a/src/dfb/evtloop.cpp b/src/dfb/evtloop.cpp index 52b940c9f4..2ecc94a9b4 100644 --- a/src/dfb/evtloop.cpp +++ b/src/dfb/evtloop.cpp @@ -26,6 +26,7 @@ #endif #include "wx/timer.h" +#include "wx/private/socketevtdispatch.h" #include "wx/dfb/private.h" #define TRACE_EVENTS _T("events") @@ -85,8 +86,6 @@ bool wxEventLoop::Dispatch() // NB: we don't block indefinitely waiting for an event, but instead // time out after a brief period in order to make sure that // OnNextIteration() will be called frequently enough - // - // FIXME: call NotifyTimers() from here (and loop) instead? const int TIMEOUT = 100; if ( ms_buffer->WaitForEventWithTimeout(0, TIMEOUT) ) @@ -126,9 +125,23 @@ void wxEventLoop::WakeUp() void wxEventLoop::OnNextIteration() { #if wxUSE_TIMER - // see the comment in Dispatch wxTimer::NotifyTimers(); #endif + +#if wxUSE_SOCKETS + // handle any pending socket events: + wxSocketEventDispatcher::Get().RunLoop(); +#endif +} + +void wxEventLoop::Yield() +{ + // process all pending events: + while ( Pending() ) + Dispatch(); + + // handle timers, sockets etc. + OnNextIteration(); }