X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d48b06bd9039597545de9a862501d57c5f9ec1ea..739c5499fcab1c165b8dd0591c9fd9e2329b3cf9:/src/dfb/app.cpp diff --git a/src/dfb/app.cpp b/src/dfb/app.cpp index 141bd1a031..8df872883c 100644 --- a/src/dfb/app.cpp +++ b/src/dfb/app.cpp @@ -2,7 +2,6 @@ // Name: src/dfb/app.cpp // Purpose: wxApp implementation // Author: Vaclav Slavik -// based on MGL implementation // Created: 2006-08-16 // RCS-ID: $Id$ // Copyright: (c) 2006 REA Elektronik GmbH @@ -148,60 +147,9 @@ bool wxApp::SetDisplayMode(const wxVideoMode& mode) void wxApp::WakeUpIdle() { -#if wxUSE_THREADS - if (!wxThread::IsMain()) - wxMutexGuiEnter(); -#endif - + // we don't need a mutex here, since we use the wxConsoleEventLoop + // and wxConsoleEventLoop::WakeUp() is thread-safe wxEventLoopBase * const loop = wxEventLoop::GetActive(); if ( loop ) loop->WakeUp(); - -#if wxUSE_THREADS - if (!wxThread::IsMain()) - wxMutexGuiLeave(); -#endif -} - -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 - - if ( m_isInsideYield ) - { - if ( !onlyIfNeeded ) - { - wxFAIL_MSG( wxT("wxYield called recursively" ) ); - } - - return false; - } - - m_isInsideYield = true; - m_eventsToProcessInsideYield = eventsToProcess; - -#if wxUSE_LOG - wxLog::Suspend(); -#endif // wxUSE_LOG - - wxEventLoop * const - loop = static_cast(wxEventLoop::GetActive()); - if ( loop ) - loop->Yield(); - - // it's necessary to call ProcessIdle() to update the frames sizes which - // might have been changed (it also will update other things set from - // OnUpdateUI() which is a nice (and desired) side effect) - while ( ProcessIdle() ) {} - -#if wxUSE_LOG - wxLog::Resume(); -#endif // wxUSE_LOG - - m_isInsideYield = false; - - return true; }