X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/11a0827d14ad03dbdcff1de1067a8fd440dac330..ad60f9e7b66d326505592cc6dae034cab5826f3b:/src/x11/app.cpp diff --git a/src/x11/app.cpp b/src/x11/app.cpp index 90ea2a60af..772abba8c6 100644 --- a/src/x11/app.cpp +++ b/src/x11/app.cpp @@ -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;