summaryrefslogtreecommitdiffstats
path: root/libvncserver/main.c
diff options
context:
space:
mode:
authordscho <dscho>2005-12-19 19:45:51 +0000
committerdscho <dscho>2005-12-19 19:45:51 +0000
commit1c26789eff7b22518fcfb942e3d5a36758fdca19 (patch)
tree0891f60a4ca30fe031ae6c7090251c1d750e970a /libvncserver/main.c
parent1b81e342cbed1b620dec7065b1c06b47df0b6d92 (diff)
downloadlibtdevnc-1c26789eff7b22518fcfb942e3d5a36758fdca19.tar.gz
libtdevnc-1c26789eff7b22518fcfb942e3d5a36758fdca19.zip
introduce -deferptrupdate (thanks Dave)
Diffstat (limited to 'libvncserver/main.c')
-rw-r--r--libvncserver/main.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/libvncserver/main.c b/libvncserver/main.c
index cdf2bfc..41d70ea 100644
--- a/libvncserver/main.c
+++ b/libvncserver/main.c
@@ -931,6 +931,27 @@ rfbProcessEvents(rfbScreenInfoPtr screen,long usec)
}
}
}
+
+ if (!cl->viewOnly && cl->lastPtrX >= 0) {
+ if(cl->startPtrDeferring.tv_usec == 0) {
+ gettimeofday(&cl->startPtrDeferring,NULL);
+ if(cl->startPtrDeferring.tv_usec == 0)
+ cl->startPtrDeferring.tv_usec++;
+ } else {
+ struct timeval tv;
+ gettimeofday(&tv,NULL);
+ if(tv.tv_sec < cl->startPtrDeferring.tv_sec /* at midnight */
+ || ((tv.tv_sec-cl->startPtrDeferring.tv_sec)*1000
+ +(tv.tv_usec-cl->startPtrDeferring.tv_usec)/1000)
+ > cl->screen->deferPtrUpdateTime) {
+ cl->startPtrDeferring.tv_usec = 0;
+ cl->screen->ptrAddEvent(cl->lastPtrButtons,
+ cl->lastPtrX,
+ cl->lastPtrY, cl);
+ cl->lastPtrX = -1;
+ }
+ }
+ }
clPrev=cl;
cl=rfbClientIteratorNext(i);
if(clPrev->sock==-1) {