]> git.saurik.com Git - wxWidgets.git/blobdiff - src/x11/app.cpp
Fixed and refactored wxPropertyGridManager decsription text box painting
[wxWidgets.git] / src / x11 / app.cpp
index 4c9868ce0c98d82ce22c26087c671eb3912a98af..e37d35ad289238cb92ba20807db52b360c8098ec 100644 (file)
@@ -769,7 +769,7 @@ void wxApp::Exit()
 
 // Yield to other processes
 
-bool wxApp::Yield(bool onlyIfNeeded)
+bool wxApp::DoYield(bool onlyIfNeeded, long eventsToProcess)
 {
     // Sometimes only 2 yields seem
     // to do the trick, e.g. in the
@@ -777,9 +777,7 @@ bool wxApp::Yield(bool onlyIfNeeded)
     int i;
     for (i = 0; i < 2; i++)
     {
-        static bool s_inYield = false;
-
-        if ( s_inYield )
+        if ( m_isInsideYield )
         {
             if ( !onlyIfNeeded )
             {
@@ -789,15 +787,18 @@ bool wxApp::Yield(bool onlyIfNeeded)
             return false;
         }
 
-        s_inYield = true;
+        m_isInsideYield = true;
+        m_eventsToProcessInsideYield = eventsToProcess;
 
         // Make sure we have an event loop object,
         // or Pending/Dispatch will fail
-       wxEventLoopGuarantor dummyLoopIfNeeded;
+        wxEventLoopGuarantor dummyLoopIfNeeded;
+
         // Call dispatch at least once so that sockets
         // can be tested
         wxTheApp->Dispatch();
 
+        // TODO: implement event filtering using the eventsToProcess mask
         while (wxTheApp && wxTheApp->Pending())
             wxTheApp->Dispatch();
 
@@ -806,7 +807,7 @@ bool wxApp::Yield(bool onlyIfNeeded)
 #endif
         ProcessIdle();
 
-        s_inYield = false;
+        m_isInsideYield = false;
     }
 
     return true;