From 73e14b623fc960385f60f3eed06583c27fb5d9df Mon Sep 17 00:00:00 2001 From: ths Date: Thu, 14 Dec 2006 13:36:01 +0000 Subject: [PATCH] Reduce VNC resize traffic, thanks Eduardo Felipe. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2245 c046a42c-6fe2-441c-8c8c-71466251a162 --- vnc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vnc.c b/vnc.c index 19aa4b7467..92e48c56ec 100644 --- a/vnc.c +++ b/vnc.c @@ -167,6 +167,7 @@ static void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h, static void vnc_dpy_resize(DisplayState *ds, int w, int h) { + int size_changed; VncState *vs = ds->opaque; ds->data = realloc(ds->data, w * h * vs->depth); @@ -178,10 +179,11 @@ static void vnc_dpy_resize(DisplayState *ds, int w, int h) } ds->depth = vs->depth * 8; + size_changed = ds->width != w || ds->height != h; ds->width = w; ds->height = h; ds->linesize = w * vs->depth; - if (vs->csock != -1 && vs->has_resize) { + if (vs->csock != -1 && vs->has_resize && size_changed) { vnc_write_u8(vs, 0); /* msg id */ vnc_write_u8(vs, 0); vnc_write_u16(vs, 1); /* number of rects */