]> git.saurik.com Git - wxWidgets.git/blobdiff - src/dfb/app.cpp
rename wxDECLARE_LOCAL_EVENT to just wxDECLARE_EVENT
[wxWidgets.git] / src / dfb / app.cpp
index 8ae8339fe50f4a5ddb0f5763a7e1a26011bc20c2..141bd1a031dbc8dec32542ae02c8875880732870 100644 (file)
@@ -19,6 +19,7 @@
 #include "wx/app.h"
 
 #include "wx/evtloop.h"
+#include "wx/thread.h"
 #include "wx/dfb/private.h"
 #include "wx/private/fontmgr.h"
 
@@ -162,17 +163,14 @@ void wxApp::WakeUpIdle()
 #endif
 }
 
-
-bool wxApp::Yield(bool onlyIfNeeded)
+bool wxApp::DoYield(bool onlyIfNeeded, long eventsToProcess)
 {
 #if wxUSE_THREADS
     if ( !wxThread::IsMain() )
         return true; // can't process events from other threads
 #endif // wxUSE_THREADS
 
-    static bool s_inYield = false;
-
-    if ( s_inYield )
+    if ( m_isInsideYield )
     {
         if ( !onlyIfNeeded )
         {
@@ -182,12 +180,15 @@ bool wxApp::Yield(bool onlyIfNeeded)
         return false;
     }
 
-    s_inYield = true;
+    m_isInsideYield = true;
+    m_eventsToProcessInsideYield = eventsToProcess;
 
+#if wxUSE_LOG
     wxLog::Suspend();
+#endif // wxUSE_LOG
 
     wxEventLoop * const
-        loop = wx_static_cast(wxEventLoop *, wxEventLoop::GetActive());
+        loop = static_cast<wxEventLoop *>(wxEventLoop::GetActive());
     if ( loop )
         loop->Yield();
 
@@ -196,9 +197,11 @@ bool wxApp::Yield(bool onlyIfNeeded)
     // OnUpdateUI() which is a nice (and desired) side effect)
     while ( ProcessIdle() ) {}
 
+#if wxUSE_LOG
     wxLog::Resume();
+#endif // wxUSE_LOG
 
-    s_inYield = false;
+    m_isInsideYield = false;
 
     return true;
 }