]> git.proxmox.com Git - qemu.git/blobdiff - vnchextile.h
microblaze: Correct signal frame setup.
[qemu.git] / vnchextile.h
index c96ede3407e7bb85ec8daa8789b6ad375efe1317..b9f9f5ef89157152662fe19a98b808cfd3dfed3a 100644 (file)
@@ -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;
@@ -189,16 +189,17 @@ static void CONCAT(send_hextile_tile_, NAME)(VncState *vs,
     vnc_write_u8(vs, flags);
     if (n_colors < 4) {
        if (flags & 0x02)
-           vs->write_pixels(vs, last_bg, sizeof(pixel_t));
+           vs->write_pixels(vs, &vd->server->pf, last_bg, sizeof(pixel_t));
        if (flags & 0x04)
-           vs->write_pixels(vs, last_fg, sizeof(pixel_t));
+           vs->write_pixels(vs, &vd->server->pf, last_fg, sizeof(pixel_t));
        if (n_subtiles) {
            vnc_write_u8(vs, n_subtiles);
            vnc_write(vs, data, n_data);
        }
     } else {
        for (j = 0; j < h; j++) {
-           vs->write_pixels(vs, row, w * ds_get_bytes_per_pixel(vs->ds));
+           vs->write_pixels(vs, &vd->server->pf, row,
+                             w * ds_get_bytes_per_pixel(vs->ds));
            row += ds_get_linesize(vs->ds);
        }
     }