]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/basemsw.cpp
use facename in wxFontRefData::Init() in Unicode build (part of patch 1671684)
[wxWidgets.git] / src / msw / basemsw.cpp
index 3dae6042c7a3fdd6ea09572d6b3948523f22f86b..47a9aac846043e040ba842f8a8272f9bcc339d24 100644 (file)
 
 #include "wx/msw/private.h"
 
+// ============================================================================
+// wxAppTraits implementation
+// ============================================================================
+
+WXDWORD wxAppTraits::DoSimpleWaitForThread(WXHANDLE hThread)
+{
+    return ::WaitForSingleObject((HANDLE)hThread, INFINITE);
+}
+
 // ============================================================================
 // wxConsoleAppTraits implementation
 // ============================================================================
 
 void wxConsoleAppTraits::AlwaysYield()
 {
+    // we need to use special logic to deal with WM_PAINT: as this pseudo
+    // message is generated automatically as long as there are invalidated
+    // windows belonging to this thread, we'd never return if we waited here
+    // until we have no more of them left. OTOH, this message is always the
+    // last one in the queue, so we can safely return as soon as we detect it
     MSG msg;
     while ( ::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
-        ;
+    {
+        if ( msg.message == WM_PAINT )
+            break;
+    }
 }
 
 void *wxConsoleAppTraits::BeforeChildWaitLoop()
@@ -63,3 +80,8 @@ bool wxConsoleAppTraits::DoMessageFromThreadWait()
     return true;
 }
 
+WXDWORD wxConsoleAppTraits::WaitForThread(WXHANDLE hThread)
+{
+    return DoSimpleWaitForThread(hThread);
+}
+