]> git.saurik.com Git - wxWidgets.git/blobdiff - src/x11/app.cpp
Workaround for GTK+ sensitivity bug
[wxWidgets.git] / src / x11 / app.cpp
index 90ea2a60af89ebf1e8eee0b0eb7f657091ec3a13..772abba8c6003fd25eb740631f56cfc291efe511 100644 (file)
@@ -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,17 +787,11 @@ bool wxApp::Yield(bool onlyIfNeeded)
             return false;
         }
 
-        s_inYield = true;
+        m_isInsideYield = true;
 
         // Make sure we have an event loop object,
         // or Pending/Dispatch will fail
-        wxEventLoopBase * const eventLoop = wxEventLoop::GetActive();
-        wxEventLoop* newEventLoop = NULL;
-        if (!eventLoop)
-        {
-            newEventLoop = new wxEventLoop;
-            wxEventLoop::SetActive(newEventLoop);
-        }
+        wxEventLoopGuarantor dummyLoopIfNeeded;
 
         // Call dispatch at least once so that sockets
         // can be tested
@@ -813,13 +805,7 @@ bool wxApp::Yield(bool onlyIfNeeded)
 #endif
         ProcessIdle();
 
-        if (newEventLoop)
-        {
-            wxEventLoop::SetActive(NULL);
-            delete newEventLoop;
-        }
-
-        s_inYield = false;
+        m_isInsideYield = false;
     }
 
     return true;