diff options
author | dscho <dscho> | 2001-10-02 16:40:45 +0000 |
---|---|---|
committer | dscho <dscho> | 2001-10-02 16:40:45 +0000 |
commit | f6e8bc8927253e315665e68033ca2f7df09ba1bf (patch) | |
tree | 997dd673edfbf2599aef81bf3426dbdbedab0d9f /cursor.c | |
parent | 090c47387692a2a09ad624781e2e3aa2031a011c (diff) | |
download | libtdevnc-f6e8bc8927253e315665e68033ca2f7df09ba1bf.tar.gz libtdevnc-f6e8bc8927253e315665e68033ca2f7df09ba1bf.zip |
implemented rfbSetCursor
Diffstat (limited to 'cursor.c')
-rw-r--r-- | cursor.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -472,3 +472,29 @@ void rfbPrintXCursor(rfbCursorPtr cursor) putchar('\n'); } } + +extern void rfbSetCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr c,Bool freeOld) +{ + rfbClientPtr cl; +#ifdef HAVE_PTHREADS + pthread_mutex_lock(rfbScreen->cursor->mutex); +#endif + for(cl=rfbScreen->rfbClientHead;cl;cl=cl->next) + if(cl->sock>=0) { +#ifdef HAVE_PTHREADS + pthread_mutex_lock(cl->updateMutex); +#endif + rfbUndrawCursor(cl); +#ifdef HAVE_PTHREADS + pthread_mutex_unlock(cl->updateMutex); +#endif + } +#ifdef HAVE_PTHREADS + pthread_mutex_unlock(rfbScreen->cursor->mutex); +#endif + + if(freeOld && rfbScreen->cursor) + rfbFreeCursor(rfbScreen->cursor); + + rfbScreen->cursor = c; +} |