diff options
author | Philipp Lohmann [pl] <Philipp.Lohmann@Oracle.COM> | 2011-03-31 14:37:25 +0200 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2012-11-06 11:58:12 +0000 |
commit | 784909a789f9ba7eb7cf7a6dbf5d8172f49bcc97 (patch) | |
tree | fb39cc787414c9dcf11d124668a5e4c533c86890 /vcl | |
parent | 138322482296aca2aa20399dbb42afe2effee21d (diff) |
impress211: #i116339# implement bHandleAllCurrentEvents
Conflicts:
vcl/unx/generic/app/saldata.cxx
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/generic/app/saldata.cxx | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/vcl/unx/generic/app/saldata.cxx b/vcl/unx/generic/app/saldata.cxx index 0596dce454d7..58a89578eae6 100644 --- a/vcl/unx/generic/app/saldata.cxx +++ b/vcl/unx/generic/app/saldata.cxx @@ -681,6 +681,8 @@ void SalXLib::Yield( bool bWait, bool bHandleAllCurrentEvents ) if (p_prioritize_timer != NULL) CheckTimeout(); + const int nMaxEvents = bHandleAllCurrentEvents ? 100 : 1; + // first, check for already queued events. for ( int nFD = 0; nFD < nFDs_; nFD++ ) { @@ -688,10 +690,11 @@ void SalXLib::Yield( bool bWait, bool bHandleAllCurrentEvents ) if ( pEntry->fd ) { DBG_ASSERT( nFD == pEntry->fd, "wrong fd in Yield()" ); - if ( pEntry->HasPendingEvent() ) + for( int i = 0; i < nMaxEvents && pEntry->HasPendingEvent(); i++ ) { pEntry->HandleNextEvent(); - return; + if( ! bHandleAllCurrentEvents ) + return; } } } @@ -778,7 +781,6 @@ void SalXLib::Yield( bool bWait, bool bHandleAllCurrentEvents ) } if ( FD_ISSET( nFD, &ReadFDS ) ) { - int nMaxEvents = bHandleAllCurrentEvents ? 100 : 1; for( int i = 0; pEntry->IsEventQueued() && i < nMaxEvents; i++ ) { pEntry->HandleNextEvent(); |