Commit 73e14b623fc960385f60f3eed06583c27fb5d9df
1 parent
768a4a36
Reduce VNC resize traffic, thanks Eduardo Felipe.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2245 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
3 additions
and
1 deletions
vnc.c
| ... | ... | @@ -167,6 +167,7 @@ static void vnc_framebuffer_update(VncState *vs, int x, int y, int w, int h, |
| 167 | 167 | |
| 168 | 168 | static void vnc_dpy_resize(DisplayState *ds, int w, int h) |
| 169 | 169 | { |
| 170 | + int size_changed; | |
| 170 | 171 | VncState *vs = ds->opaque; |
| 171 | 172 | |
| 172 | 173 | ds->data = realloc(ds->data, w * h * vs->depth); |
| ... | ... | @@ -178,10 +179,11 @@ static void vnc_dpy_resize(DisplayState *ds, int w, int h) |
| 178 | 179 | } |
| 179 | 180 | |
| 180 | 181 | ds->depth = vs->depth * 8; |
| 182 | + size_changed = ds->width != w || ds->height != h; | |
| 181 | 183 | ds->width = w; |
| 182 | 184 | ds->height = h; |
| 183 | 185 | ds->linesize = w * vs->depth; |
| 184 | - if (vs->csock != -1 && vs->has_resize) { | |
| 186 | + if (vs->csock != -1 && vs->has_resize && size_changed) { | |
| 185 | 187 | vnc_write_u8(vs, 0); /* msg id */ |
| 186 | 188 | vnc_write_u8(vs, 0); |
| 187 | 189 | vnc_write_u16(vs, 1); /* number of rects */ | ... | ... |