From 02c2b87fff97e77a1f6033fb09f53afa267c0c1e Mon Sep 17 00:00:00 2001 From: Anthony Liguori Date: Mon, 14 Dec 2009 14:11:56 -0600 Subject: vnc: hextile: do not generate ForegroundSpecified and SubrectsColoured tiles This violates the RFB specification (section 6.6.4). It happens to work with most clients but it's still wrong. Reported-by: Yaniv Kaul Signed-off-by: Anthony Liguori --- vnchextile.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/vnchextile.h b/vnchextile.h index c96ede3407..432ed89af4 100644 --- a/vnchextile.h +++ b/vnchextile.h @@ -73,7 +73,7 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs, *last_bg = bg; } - if (!*has_fg || *last_fg != fg) { + if (n_colors < 3 && (!*has_fg || *last_fg != fg)) { flags |= 0x04; *has_fg = 1; *last_fg = fg; @@ -165,8 +165,6 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs, irow += ds_get_linesize(vs->ds) / sizeof(pixel_t); } - /* A SubrectsColoured subtile invalidates the foreground color */ - *has_fg = 0; if (n_data > (w * h * sizeof(pixel_t))) { n_colors = 4; flags = 0x01; -- cgit v1.2.1