summaryrefslogtreecommitdiff
path: root/vcl/unx
diff options
context:
space:
mode:
authorPhilipp Lohmann [pl] <Philipp.Lohmann@Oracle.COM>2011-03-31 14:37:25 +0200
committerMichael Meeks <michael.meeks@suse.com>2012-11-06 11:58:12 +0000
commit784909a789f9ba7eb7cf7a6dbf5d8172f49bcc97 (patch)
treefb39cc787414c9dcf11d124668a5e4c533c86890 /vcl/unx
parent138322482296aca2aa20399dbb42afe2effee21d (diff)
impress211: #i116339# implement bHandleAllCurrentEvents
Conflicts: vcl/unx/generic/app/saldata.cxx
Diffstat (limited to 'vcl/unx')
-rw-r--r--vcl/unx/generic/app/saldata.cxx8
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();