diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2015-03-24 17:50:13 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2015-04-27 12:47:04 +0200 |
commit | 700cd855def54c2a9f2b6a016dcebf75fe19c238 (patch) | |
tree | 6435e92991bfc0eaa5113f8ea68f319dd6e9d94c | |
parent | dc8dceee64f45820c20f3ffa3c3fecd7b6539990 (diff) |
spice: learn to hide cursor
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r-- | ui/spice-display.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ui/spice-display.c b/ui/spice-display.c index a09f6f8483..c71a059e35 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -260,7 +260,8 @@ static void qemu_spice_create_update(SimpleSpiceDisplay *ssd) static SimpleSpiceCursor* qemu_spice_create_cursor_update(SimpleSpiceDisplay *ssd, - QEMUCursor *c) + QEMUCursor *c, + int on) { size_t size = c ? c->width * c->height * 4 : 0; SimpleSpiceCursor *update; @@ -288,6 +289,8 @@ qemu_spice_create_cursor_update(SimpleSpiceDisplay *ssd, cursor->data_size = size; cursor->chunk.data_size = size; memcpy(cursor->chunk.data, c->data, size); + } else if (!on) { + ccmd->type = QXL_CURSOR_HIDE; } else { ccmd->type = QXL_CURSOR_MOVE; ccmd->u.position.x = ssd->ptr_x + ssd->hot_x; @@ -738,7 +741,7 @@ static void display_mouse_set(DisplayChangeListener *dcl, if (ssd->ptr_move) { g_free(ssd->ptr_move); } - ssd->ptr_move = qemu_spice_create_cursor_update(ssd, NULL); + ssd->ptr_move = qemu_spice_create_cursor_update(ssd, NULL, on); qemu_mutex_unlock(&ssd->lock); } @@ -757,7 +760,7 @@ static void display_mouse_define(DisplayChangeListener *dcl, if (ssd->ptr_define) { g_free(ssd->ptr_define); } - ssd->ptr_define = qemu_spice_create_cursor_update(ssd, c); + ssd->ptr_define = qemu_spice_create_cursor_update(ssd, c, 0); qemu_mutex_unlock(&ssd->lock); } |