summaryrefslogtreecommitdiffstats
path: root/server/red_worker.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/red_worker.c')
-rw-r--r--server/red_worker.c23
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)