X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/57bd4c6031d438f11af0ec540136f49a928b923c..58e8013e8217e36a4bdf38e6dbad3b21edf61af6:/src/msw/app.cpp diff --git a/src/msw/app.cpp b/src/msw/app.cpp index d6fc28e390..61218c7190 100644 --- a/src/msw/app.cpp +++ b/src/msw/app.cpp @@ -225,6 +225,26 @@ bool wxGUIAppTraits::DoMessageFromThreadWait() return evtLoop->Dispatch(); } +DWORD wxGUIAppTraits::WaitForThread(WXHANDLE hThread) +{ + // if we don't have a running event loop, we shouldn't wait for the + // messages as we never remove them from the message queue and so we enter + // an infinite loop as MsgWaitForMultipleObjects() keeps returning + // WAIT_OBJECT_0 + 1 + if ( !wxEventLoop::GetActive() ) + return DoSimpleWaitForThread(hThread); + + return ::MsgWaitForMultipleObjects + ( + 1, // number of objects to wait for + (HANDLE *)&hThread, // the objects + false, // wait for any objects, not all + INFINITE, // no timeout + QS_ALLINPUT | // return as soon as there are any events + QS_ALLPOSTMESSAGE + ); +} + wxPortId wxGUIAppTraits::GetToolkitVersion(int *majVer, int *minVer) const { OSVERSIONINFO info;