From 47646a200feefc37754c385389f7d7b6119c7f07 Mon Sep 17 00:00:00 2001
From: dscho <dscho>
Date: Wed, 19 Jan 2005 18:32:49 +0000
Subject: redraw region under old cursor even if the old cursor doesn't have to
 be freed.

---
 libvncserver/cursor.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libvncserver/cursor.c b/libvncserver/cursor.c
index 8e2789b..3a01e64 100644
--- a/libvncserver/cursor.c
+++ b/libvncserver/cursor.c
@@ -616,14 +616,15 @@ void rfbSetCursor(rfbScreenInfoPtr rfbScreen,rfbCursorPtr c)
 
   LOCK(rfbScreen->cursorMutex);
 
-  if(rfbScreen->cursor && rfbScreen->cursor->cleanup) {
+  if(rfbScreen->cursor) {
     iterator=rfbGetClientIterator(rfbScreen);
     while((cl=rfbClientIteratorNext(iterator)))
 	if(!cl->enableCursorShapeUpdates)
 	  rfbRedrawAfterHideCursor(cl);
     rfbReleaseClientIterator(iterator);
 
-    rfbFreeCursor(rfbScreen->cursor);
+    if(rfbScreen->cursor->cleanup)
+	 rfbFreeCursor(rfbScreen->cursor);
   }
 
   rfbScreen->cursor = c;
-- 
cgit v1.2.3

