# HG changeset patch
# User Steven Smith <ssmith@xxxxxxxxxxxxx>
# Node ID a1154318cd80ad5cb488f6fbb8fc138e87ad429b
# Parent ca3abb3804f4400b24037a4366cb2ca5e51ed742
[HVM][VNC] Work around a bug in the newest version of xvncviewer which
could lead to the display locking up after it's been idle for a while.
Signed-off-by: Steven Smith <sos22@xxxxxxxxx>
---
tools/ioemu/vnc.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff -r ca3abb3804f4 -r a1154318cd80 tools/ioemu/vnc.c
--- a/tools/ioemu/vnc.c Tue Sep 26 16:46:47 2006 +0100
+++ b/tools/ioemu/vnc.c Tue Sep 26 16:47:35 2006 +0100
@@ -581,12 +581,16 @@ static void _vnc_update_client(void *opa
interested (e.g. minimised) it'll ignore this, and we
can stop scanning the buffer until it sends another
update request. */
- /* Note that there are bugs in xvncviewer which prevent
- this from actually working. Leave the code in place
- for correct clients. */
+ /* It turns out that there's a bug in realvncviewer 4.1.2
+ which means that if you send a proper null update (with
+ no update rectangles), it gets a bit out of sync and
+ never sends any further requests, regardless of whether
+ it needs one or not. Fix this by sending a single 1x1
+ update rectangle instead. */
vnc_write_u8(vs, 0);
vnc_write_u8(vs, 0);
- vnc_write_u16(vs, 0);
+ vnc_write_u16(vs, 1);
+ send_framebuffer_update(vs, 0, 0, 1, 1);
vnc_flush(vs);
vs->last_update_time = now;
return;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|