]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/app.cpp
applied wxListCtrl label editing patch
[wxWidgets.git] / src / msw / app.cpp
index 378dccbe3efc0014fa1dfd846af211da7146c228..45250cfe163dcfd64d162d2a6ee82c2b493ca856 100644 (file)
@@ -1435,20 +1435,26 @@ void wxExit()
 
 // Yield to incoming messages
 
-static bool gs_inYield = FALSE;
-
-bool wxYield()
+bool wxApp::Yield(bool onlyIfNeeded)
 {
+    // MT-FIXME
+    static bool s_inYield = FALSE;
+
     // disable log flushing from here because a call to wxYield() shouldn't
     // normally result in message boxes popping up &c
     wxLog::Suspend();
 
-#ifdef __WXDEBUG__
-    if (gs_inYield)
-        wxFAIL_MSG( wxT("wxYield called recursively" ) );
-#endif
+    if ( s_inYield )
+    {
+        if ( !onlyIfNeeded )
+        {
+            wxFAIL_MSG( wxT("wxYield called recursively" ) );
+        }
 
-    gs_inYield = TRUE;
+        return FALSE;
+    }
+
+    s_inYield = TRUE;
 
     // we don't want to process WM_QUIT from here - it should be processed in
     // the main event loop in order to stop it
@@ -1464,27 +1470,17 @@ bool wxYield()
             break;
     }
 
-    // If they are pending events, we must process them.
-    if (wxTheApp)
-        wxTheApp->ProcessPendingEvents();
+    // if there are pending events, we must process them.
+    ProcessPendingEvents();
 
     // let the logs be flashed again
     wxLog::Resume();
 
-    gs_inYield = FALSE;
+    s_inYield = FALSE;
 
     return TRUE;
 }
 
-// Yield to incoming messages; but fail silently if recursion is detected.
-bool wxYieldIfNeeded()
-{
-    if (gs_inYield)
-        return FALSE;
-
-    return wxYield();
-}
-
 bool wxHandleFatalExceptions(bool doit)
 {
 #if wxUSE_ON_FATAL_EXCEPTION
@@ -1493,9 +1489,9 @@ bool wxHandleFatalExceptions(bool doit)
 
     return TRUE;
 #else
-    wxFAIL_MSG(_T("set wxUSE_ON_FATAL_EXCEPTION to 1 to sue this function"));
-       
-       (void)doit;
+    wxFAIL_MSG(_T("set wxUSE_ON_FATAL_EXCEPTION to 1 to use this function"));
+
+    (void)doit;
     return FALSE;
 #endif
 }