diff options
author | dscho <dscho> | 2005-01-14 14:35:52 +0000 |
---|---|---|
committer | dscho <dscho> | 2005-01-14 14:35:52 +0000 |
commit | 2cd3c824c6422ae9cfc9dd8fcdbd5601c3edd9c0 (patch) | |
tree | 08de53ab0c9c36357828adbd189574773d6e6a1b /libvncserver/main.c | |
parent | b9a8f19bb493c1070d6f7b355f3265782971d2d0 (diff) | |
download | libtdevnc-2cd3c824c6422ae9cfc9dd8fcdbd5601c3edd9c0.tar.gz libtdevnc-2cd3c824c6422ae9cfc9dd8fcdbd5601c3edd9c0.zip |
return value of rfbProcessEvents tells if an update was pending
Diffstat (limited to 'libvncserver/main.c')
-rw-r--r-- | libvncserver/main.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libvncserver/main.c b/libvncserver/main.c index 0c87d8e..7c29680 100644 --- a/libvncserver/main.c +++ b/libvncserver/main.c @@ -791,12 +791,13 @@ void gettimeofday(struct timeval* tv,char* dummy) /* defined in rfbserver.c, but kind of "private" */ rfbClientPtr rfbClientIteratorHead(rfbClientIteratorPtr i); -void +rfbBool rfbProcessEvents(rfbScreenInfoPtr screen,long usec) { rfbClientIteratorPtr i; rfbClientPtr cl,clPrev; struct timeval tv; + rfbBool result=FALSE; if(usec<0) usec=screen->deferUpdateTime*1000; @@ -812,6 +813,7 @@ rfbProcessEvents(rfbScreenInfoPtr screen,long usec) while(cl) { if (cl->sock >= 0 && !cl->onHold && FB_UPDATE_PENDING(cl) && !sraRgnEmpty(cl->requestedRegion)) { + result=TRUE; if(screen->deferUpdateTime == 0) { rfbSendFramebufferUpdate(cl,cl->modifiedRegion); } else if(cl->startDeferring.tv_usec == 0) { @@ -831,10 +833,14 @@ rfbProcessEvents(rfbScreenInfoPtr screen,long usec) } clPrev=cl; cl=rfbClientIteratorNext(i); - if(clPrev->sock==-1) + if(clPrev->sock==-1) { rfbClientConnectionGone(clPrev); + result=TRUE; + } } rfbReleaseClientIterator(i); + + return result; } void rfbRunEventLoop(rfbScreenInfoPtr screen, long usec, rfbBool runInBackground) |