[mutter/gbsneto/fix-unset-cursor-metadata: 4/4] streams: Don't bail out when cursor is outside the stream




commit 2b67030dbb918c46b5e8c6fae720cad8e2befb9e
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Thu Aug 27 11:17:42 2020 -0300

    streams: Don't bail out when cursor is outside the stream
    
    PipeWire reuses buffers, and buffer metadatas, when streaming. When
    the cursor is moved to outside the stream, the cursor meta also needs
    to be updated, otherwise it'll use the cursor position of whatever is
    in the buffer.
    
    Don't bail out when cursor is outside the stream, and ensure to record
    a metadata-only frame. This only applies to metadata streams.
    
    https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1417

 src/backends/meta-screen-cast-area-stream-src.c    |  3 ---
 src/backends/meta-screen-cast-monitor-stream-src.c |  3 ---
 src/backends/meta-screen-cast-window-stream-src.c  | 25 ----------------------
 3 files changed, 31 deletions(-)
---
diff --git a/src/backends/meta-screen-cast-area-stream-src.c b/src/backends/meta-screen-cast-area-stream-src.c
index c5521422c6..5846177537 100644
--- a/src/backends/meta-screen-cast-area-stream-src.c
+++ b/src/backends/meta-screen-cast-area-stream-src.c
@@ -172,9 +172,6 @@ sync_cursor_state (MetaScreenCastAreaStreamSrc *area_src)
   MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (area_src);
   MetaScreenCastRecordFlag flags;
 
-  if (!is_cursor_in_stream (area_src))
-    return;
-
   if (is_redraw_queued (area_src))
     return;
 
diff --git a/src/backends/meta-screen-cast-monitor-stream-src.c 
b/src/backends/meta-screen-cast-monitor-stream-src.c
index cb6e81b288..78aba0a953 100644
--- a/src/backends/meta-screen-cast-monitor-stream-src.c
+++ b/src/backends/meta-screen-cast-monitor-stream-src.c
@@ -206,9 +206,6 @@ sync_cursor_state (MetaScreenCastMonitorStreamSrc *monitor_src)
   MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (monitor_src);
   MetaScreenCastRecordFlag flags;
 
-  if (!is_cursor_in_stream (monitor_src))
-    return;
-
   if (is_redraw_queued (monitor_src))
     return;
 
diff --git a/src/backends/meta-screen-cast-window-stream-src.c 
b/src/backends/meta-screen-cast-window-stream-src.c
index d41b6c41c9..8bb2dabd0a 100644
--- a/src/backends/meta-screen-cast-window-stream-src.c
+++ b/src/backends/meta-screen-cast-window-stream-src.c
@@ -354,37 +354,12 @@ screen_cast_window_destroyed (MetaWindowActor               *actor,
   window_src->screen_cast_window = NULL;
 }
 
-static gboolean
-is_cursor_in_stream (MetaScreenCastWindowStreamSrc *window_src)
-{
-  MetaBackend *backend = get_backend (window_src);
-  MetaCursorRenderer *cursor_renderer =
-    meta_backend_get_cursor_renderer (backend);
-  MetaCursorSprite *cursor_sprite;
-  graphene_point_t cursor_position;
-  MetaScreenCastWindow *screen_cast_window;
-
-  cursor_sprite = meta_cursor_renderer_get_cursor (cursor_renderer);
-
-  cursor_position = meta_cursor_renderer_get_position (cursor_renderer);
-
-  screen_cast_window = window_src->screen_cast_window;
-  return meta_screen_cast_window_transform_cursor_position (screen_cast_window,
-                                                            cursor_sprite,
-                                                            &cursor_position,
-                                                            NULL,
-                                                            NULL);
-}
-
 static void
 sync_cursor_state (MetaScreenCastWindowStreamSrc *window_src)
 {
   MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (window_src);
   MetaScreenCastRecordFlag flags;
 
-  if (!is_cursor_in_stream (window_src))
-    return;
-
   if (meta_screen_cast_window_has_damage (window_src->screen_cast_window))
     return;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]