diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2009-12-14 14:11:56 -0600 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-12-18 11:26:25 -0600 |
commit | 02c2b87fff97e77a1f6033fb09f53afa267c0c1e (patch) | |
tree | d11fd10144928eede306115636ddbd5de91ed8bc | |
parent | d587e0787153f0224a6140c5015609963ceaabfb (diff) |
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 <ykaul@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r-- | vnchextile.h | 4 |
1 files changed, 1 insertions, 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; |