From abc85554639a0cfe714622025549f62245965725 Mon Sep 17 00:00:00 2001 From: Salman Malik Date: Fri, 16 Sep 2022 15:44:35 +0000 Subject: [PATCH] virtual-stream: Fix always embedded cursor This change fixes the issue where the cursor is always embedded in the frames even when the client has requested the cursor information be sent as metadata in the stream. Part-of: --- .../meta-screen-cast-virtual-stream-src.c | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/backends/meta-screen-cast-virtual-stream-src.c b/src/backends/meta-screen-cast-virtual-stream-src.c index ee0dd4472..c7174dd2a 100644 --- a/src/backends/meta-screen-cast-virtual-stream-src.c +++ b/src/backends/meta-screen-cast-virtual-stream-src.c @@ -198,15 +198,29 @@ static void add_watch (MetaScreenCastVirtualStreamSrc *virtual_src) { MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (virtual_src); + MetaScreenCastStream *stream = meta_screen_cast_stream_src_get_stream (src); MetaStage *meta_stage = META_STAGE (stage_from_src (src)); g_return_if_fail (!virtual_src->watch); - virtual_src->watch = meta_stage_watch_view (meta_stage, - view_from_src (src), - META_STAGE_WATCH_AFTER_PAINT, - actors_painted, - virtual_src); + switch (meta_screen_cast_stream_get_cursor_mode (stream)) + { + case META_SCREEN_CAST_CURSOR_MODE_METADATA: + case META_SCREEN_CAST_CURSOR_MODE_HIDDEN: + virtual_src->watch = meta_stage_watch_view (meta_stage, + view_from_src (src), + META_STAGE_WATCH_AFTER_ACTOR_PAINT, + actors_painted, + virtual_src); + break; + case META_SCREEN_CAST_CURSOR_MODE_EMBEDDED: + virtual_src->watch = meta_stage_watch_view (meta_stage, + view_from_src (src), + META_STAGE_WATCH_AFTER_PAINT, + actors_painted, + virtual_src); + break; + } } static void