diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2017-01-05 09:47:50 +0100 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2017-01-17 16:23:11 +0100 |
commit | eaf2b87a2e4a2a72c3efdf979c7b87fad5c7cbe5 (patch) | |
tree | 9bc1fac2e8bffad1f9c43cddc38a2da8c36fea8f | |
parent | 59b84bc78dff2adb265d9fa8edb4c42794cf9771 (diff) |
KDE4 Qt always processes all pending events
Change-Id: I6a6e37c36a64640b641b116867da5c63c9d36bca
-rw-r--r-- | vcl/unx/kde4/KDEXLib.cxx | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx index 06340bebf45c..8d59315822fd 100644 --- a/vcl/unx/kde4/KDEXLib.cxx +++ b/vcl/unx/kde4/KDEXLib.cxx @@ -301,21 +301,19 @@ SalYieldResult KDEXLib::Yield( bool bWait, bool bHandleAllCurrentEvents ) } } -SalYieldResult KDEXLib::processYield( bool bWait, bool bHandleAllCurrentEvents ) +/** + * Quoting the Qt docs: [QAbstractEventDispatcher::processEvents] processes + * pending events that match flags until there are no more events to process. + */ +SalYieldResult KDEXLib::processYield( bool bWait, bool ) { m_blockIdleTimeout = !bWait; QAbstractEventDispatcher* dispatcher = QAbstractEventDispatcher::instance( qApp->thread()); bool wasEvent = false; - for( int cnt = bHandleAllCurrentEvents ? 100 : 1; - cnt > 0; - --cnt ) - { - if( !dispatcher->processEvents( QEventLoop::AllEvents )) - break; - wasEvent = true; - } - if( bWait && !wasEvent ) - dispatcher->processEvents( QEventLoop::WaitForMoreEvents ); + if ( bWait ) + wasEvent = dispatcher->processEvents( QEventLoop::WaitForMoreEvents ); + else + wasEvent = dispatcher->processEvents( QEventLoop::AllEvents ); m_blockIdleTimeout = false; return wasEvent ? SalYieldResult::EVENT : SalYieldResult::TIMEOUT; |