summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordscho <dscho>2001-10-03 17:09:55 +0000
committerdscho <dscho>2001-10-03 17:09:55 +0000
commitb3f2c7d08178aa45c5687cac338d65db5d92d01c (patch)
tree9dffbb6c40f8ebabc8386a98a35128295af6c076
parent05c8f2d4840e8e4d0166b176b8c88bfdfffcce91 (diff)
downloadlibtdevnc-b3f2c7d0.tar.gz
libtdevnc-b3f2c7d0.zip
java viewer bug fixed
-rw-r--r--TODO8
-rw-r--r--rfbserver.c6
2 files changed, 9 insertions, 5 deletions
diff --git a/TODO b/TODO
index 17ffe48..f17d3f0 100644
--- a/TODO
+++ b/TODO
@@ -1,24 +1,26 @@
immediate:
----------
-fix bug in http (java) client with big endian server: byte swapping is broken
udp
documentation
perhaps the option (or just hint) not to mark very tiny regions as
modified, because that is inefficient for the encodings.
optionally dont draw rich cursors as xcursors
+cursor smears on IRIX with pthreads, then has bus error.
later:
------
autoconf? at least Sun Solaris and Windows compilation
CORBA
-cursor "smears" sometimes when not using cursor encoding
- (seems to be gone now; haven't debugged properly, though)
done:
-----
+.fix bug in http (java) client with big endian server: byte swapping is broken
+ (was a cursorshape which was sent too soon; java vncviewer assumes
+ a rich cursor shape to be always 1 byte per pixel, however, framebuffer
+ updates before setting the pixel format can be server format)
.rfbConnect, ConnectToTcpAddr
.update to newest TridiaVNC version (1.2.1).
.adapt rdp2vnc (rdesktop)
diff --git a/rfbserver.c b/rfbserver.c
index f43ceac..ef7eced 100644
--- a/rfbserver.c
+++ b/rfbserver.c
@@ -849,6 +849,7 @@ rfbSendFramebufferUpdate(cl, givenUpdateRegion)
Bool sendCursorShape = FALSE;
Bool cursorWasDrawn = FALSE;
+
/*
* If this client understands cursor shape updates, cursor should be
* removed from the framebuffer. Otherwise, make sure it's put up.
@@ -860,8 +861,9 @@ rfbSendFramebufferUpdate(cl, givenUpdateRegion)
if (cl->screen->cursorIsDrawn) {
rfbUndrawCursor(cl);
}
- if (!cl->screen->cursorIsDrawn && cl->cursorWasChanged)
- sendCursorShape = TRUE;
+ if (!cl->screen->cursorIsDrawn && cl->cursorWasChanged &&
+ cl->readyForSetColourMapEntries)
+ sendCursorShape = TRUE;
} else {
if (!cl->screen->cursorIsDrawn) {
rfbDrawCursor(cl);