From 2eded94f7b46a33a290da74cff8e8c8ff4bdbe77 Mon Sep 17 00:00:00 2001 From: steven_carr Date: Thu, 4 May 2006 16:24:46 +0000 Subject: [PATCH] UltraVNC with scaling, will send rectangles with a zero W or H We need to process the rectangle (especially if it a type that contains subrectangles or any kind of compression). UltraVNC should be fixed to prevent these useless rectangles from being sent. --- libvncclient/rfbproto.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libvncclient/rfbproto.c b/libvncclient/rfbproto.c index fd6bdee..3a325ee 100644 --- a/libvncclient/rfbproto.c +++ b/libvncclient/rfbproto.c @@ -867,11 +867,16 @@ HandleRFBServerMessage(rfbClient* client) return FALSE; } - if (rect.r.h * rect.r.w == 0) { - rfbClientLog("Zero size rect - ignoring\n"); + /* UltraVNC with scaling, will send rectangles with a zero W or H + * + if ((rect.encoding != rfbEncodingTight) && + (rect.r.h * rect.r.w == 0)) + { + rfbClientLog("Zero size rect - ignoring (encoding=%d (0x%08x) %dx, %dy, %dw, %dh)\n", rect.encoding, rect.encoding, rect.r.x, rect.r.y, rect.r.w, rect.r.h); continue; } - + */ + /* If RichCursor encoding is used, we should prevent collisions between framebuffer updates and cursor drawing operations. */ client->SoftCursorLockArea(client, rect.r.x, rect.r.y, rect.r.w, rect.r.h);