diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2010-05-25 18:25:18 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2010-06-01 13:30:08 -0500 |
commit | 5862d195f90cb63c53b9dc3f54e10f8b9372bcf6 (patch) | |
tree | 856b605d2ef4c06b3edccca8adfe954b55304af7 | |
parent | 6356e472512c55a5dc3aaf12ce12a6eb916dd045 (diff) |
vnc: keep track of client desktop size
Add two new variables to keep track of the vnc clients desktop size.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r-- | vnc.c | 10 | ||||
-rw-r--r-- | vnc.h | 2 |
2 files changed, 9 insertions, 3 deletions
@@ -529,10 +529,12 @@ static void vnc_desktop_resize(VncState *vs) if (vs->csock == -1 || !vnc_has_feature(vs, VNC_FEATURE_RESIZE)) { return; } + vs->client_width = ds_get_width(ds); + vs->client_height = ds_get_height(ds); vnc_write_u8(vs, VNC_MSG_SERVER_FRAMEBUFFER_UPDATE); vnc_write_u8(vs, 0); vnc_write_u16(vs, 1); /* number of rects */ - vnc_framebuffer_update(vs, 0, 0, ds_get_width(ds), ds_get_height(ds), + vnc_framebuffer_update(vs, 0, 0, vs->client_width, vs->client_height, VNC_ENCODING_DESKTOPRESIZE); vnc_flush(vs); } @@ -1975,8 +1977,10 @@ static int protocol_client_init(VncState *vs, uint8_t *data, size_t len) char buf[1024]; int size; - vnc_write_u16(vs, ds_get_width(vs->ds)); - vnc_write_u16(vs, ds_get_height(vs->ds)); + vs->client_width = ds_get_width(vs->ds); + vs->client_height = ds_get_height(vs->ds); + vnc_write_u16(vs, vs->client_width); + vnc_write_u16(vs, vs->client_height); pixel_format_message(vs); @@ -134,6 +134,8 @@ struct VncState int absolute; int last_x; int last_y; + int client_width; + int client_height; uint32_t vnc_encoding; |