Kaydet (Commit) eaf2b87a authored tarafından Jan-Marek Glogowski's avatar Jan-Marek Glogowski

KDE4 Qt always processes all pending events

Change-Id: I6a6e37c36a64640b641b116867da5c63c9d36bca
üst 59b84bc7
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment