diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-09-03 22:24:44 +0200 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2015-11-03 09:07:18 +0000 |
commit | e601e920bd5a8385f7388cf31e0b0d543f68193e (patch) | |
tree | c0000f48d24adddc85b7417c3d3a52556faf0217 /server/red_worker.c | |
parent | c9e3b058e452e3e00ae009163a5de66e99987492 (diff) | |
download | spice-e601e920bd5a8385f7388cf31e0b0d543f68193e.tar.gz spice-e601e920bd5a8385f7388cf31e0b0d543f68193e.tar.xz spice-e601e920bd5a8385f7388cf31e0b0d543f68193e.zip |
server: make more of cursor private
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
Diffstat (limited to 'server/red_worker.c')
-rw-r--r-- | server/red_worker.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/server/red_worker.c b/server/red_worker.c index ecfdea17..a15d5b68 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -9065,7 +9065,7 @@ static int common_channel_config_socket(RedChannelClient *rcc) RedClient *client = red_channel_client_get_client(rcc); MainChannelClient *mcc = red_client_get_main(client); RedsStream *stream = red_channel_client_get_stream(rcc); - CommonChannelClient *ccc = SPICE_CONTAINEROF(rcc, CommonChannelClient, base); + CommonChannelClient *ccc = COMMON_CHANNEL_CLIENT(rcc); int flags; int delay_val; @@ -9550,14 +9550,14 @@ static void red_connect_cursor(RedWorker *worker, RedClient *client, RedsStream return; } - RedChannelClient *rcc = &ccc->common.base; + RedChannelClient *rcc = RED_CHANNEL_CLIENT(ccc); red_channel_client_ack_zero_messages_window(rcc); red_channel_client_push_set_ack(rcc); + // TODO: why do we check for context.canvas? defer this to after display cc is connected // and test it's canvas? this is just a test to see if there is an active renderer? - if (worker->surfaces[0].context.canvas && !COMMON_CHANNEL(channel)->during_target_migrate) { - red_channel_client_pipe_add_type(rcc, PIPE_ITEM_TYPE_CURSOR_INIT); - } + if (worker->surfaces[0].context.canvas) + cursor_channel_init(channel, ccc); } static void surface_dirty_region_to_rects(RedSurface *surface, @@ -9899,11 +9899,7 @@ static void dev_create_primary_surface(RedWorker *worker, uint32_t surface_id, red_channel_push(&worker->display_channel->common.base); } - if (cursor_is_connected(worker) - && !COMMON_CHANNEL(worker->cursor_channel)->during_target_migrate) { - red_channel_pipes_add_type(RED_CHANNEL(worker->cursor_channel), - PIPE_ITEM_TYPE_CURSOR_INIT); - } + cursor_channel_init(worker->cursor_channel, NULL); } void handle_dev_create_primary_surface(void *opaque, void *payload) @@ -10289,12 +10285,7 @@ void handle_dev_cursor_migrate(void *opaque, void *payload) RedChannelClient *rcc = msg->rcc; spice_info("migrate cursor client"); - spice_assert(rcc); - if (!red_channel_client_is_connected(rcc)) - return; - - red_channel_client_pipe_add_type(rcc, PIPE_ITEM_TYPE_INVAL_CURSOR_CACHE); - red_channel_client_default_migrate(rcc); + cursor_channel_client_migrate(CURSOR_CHANNEL_CLIENT(rcc)); } void handle_dev_set_compression(void *opaque, void *payload) |