summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2017-01-05 09:47:50 +0100
committerJan-Marek Glogowski <glogow@fbihome.de>2017-01-17 16:23:11 +0100
commiteaf2b87a2e4a2a72c3efdf979c7b87fad5c7cbe5 (patch)
tree9bc1fac2e8bffad1f9c43cddc38a2da8c36fea8f
parent59b84bc78dff2adb265d9fa8edb4c42794cf9771 (diff)
KDE4 Qt always processes all pending events
Change-Id: I6a6e37c36a64640b641b116867da5c63c9d36bca
-rw-r--r--vcl/unx/kde4/KDEXLib.cxx20
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;