[Spice-devel] [spice-gtk] fix check for 16 bit cursor mask

Frediano Ziglio fziglio at redhat.com
Wed May 31 13:59:02 UTC 2017


The size was computed using a 32 bit image while the cursor was
just 16 bit. This caused the usage of some invalid bit mask (the
bit mask is used to understand where the cursor is transparent).

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 src/channel-cursor.c | 1 +
 1 file changed, 1 insertion(+)

This was tested with a Windows XP machine with a working
QXL driver and some color pointers without shadow.
Before the patch the trasparency of the cursor were
wrong.

diff --git a/src/channel-cursor.c b/src/channel-cursor.c
index 2610660..558c920 100644
--- a/src/channel-cursor.c
+++ b/src/channel-cursor.c
@@ -430,6 +430,7 @@ static display_cursor *set_cursor(SpiceChannel *channel, SpiceCursor *scursor)
         }
         break;
     case SPICE_CURSOR_TYPE_COLOR16:
+        size /= 2u;
         for (i = 0; i < hdr->width * hdr->height; i++) {
             pix_mask = get_pix_mask(data, size, i);
             pix = *((guint16*)data + i);
-- 
2.9.4



More information about the Spice-devel mailing list