diff options
-rw-r--r-- | vcl/unx/kde4/KDEXLib.cxx | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx index a31c7e0f433a..e936c69aae5b 100644 --- a/vcl/unx/kde4/KDEXLib.cxx +++ b/vcl/unx/kde4/KDEXLib.cxx @@ -265,9 +265,6 @@ void KDEXLib::socketNotifierActivated( int fd ) void KDEXLib::Yield( bool bWait, bool bHandleAllCurrentEvents ) { - // Nested yield loop counter. - static int loop_depth = 0; - if( eventLoopType == LibreOfficeEventLoop ) { if( qApp->thread() == QThread::currentThread()) @@ -281,21 +278,13 @@ void KDEXLib::Yield( bool bWait, bool bHandleAllCurrentEvents ) // if we are the main thread (which is where the event processing is done), // good, just do it - if( qApp->thread() == QThread::currentThread()) { - // Release the yield lock before entering a nested loop. - if (loop_depth > 0) - SalYieldMutexReleaser aReleaser; - loop_depth++; + if( qApp->thread() == QThread::currentThread()) processYield( bWait, bHandleAllCurrentEvents ); - loop_depth--; - } - else { + else + { // we were called from another thread; // release the yield lock to prevent deadlock. SalYieldMutexReleaser aReleaser; - - // if this deadlocks, event processing needs to go into a separate - // thread or some other solution needs to be found Q_EMIT processYieldSignal( bWait, bHandleAllCurrentEvents ); } } |