summaryrefslogtreecommitdiffstats
path: root/cursor.c
diff options
context:
space:
mode:
authordscho <dscho>2001-10-02 16:40:45 +0000
committerdscho <dscho>2001-10-02 16:40:45 +0000
commitf6e8bc8927253e315665e68033ca2f7df09ba1bf (patch)
tree997dd673edfbf2599aef81bf3426dbdbedab0d9f /cursor.c
parent090c47387692a2a09ad624781e2e3aa2031a011c (diff)
downloadlibtdevnc-f6e8bc8927253e315665e68033ca2f7df09ba1bf.tar.gz
libtdevnc-f6e8bc8927253e315665e68033ca2f7df09ba1bf.zip
implemented rfbSetCursor
Diffstat (limited to 'cursor.c')
-rw-r--r--cursor.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/cursor.c b/cursor.c
index 19897bb..90d6ad9 100644
--- a/cursor.c
+++ b/cursor.c
@@ -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;
+}