From cd9ae13465290c09e000c54791b2d71acddd1857 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Tue, 2 Feb 2021 16:49:56 +0300 Subject: [PATCH] backend: Pass stage view to cursor-painted signal Will be used for presentation-time handling. Part-of: --- src/backends/meta-cursor-renderer.c | 16 +++++++++++----- src/backends/meta-cursor-renderer.h | 3 ++- .../native/meta-cursor-renderer-native.c | 4 +++- src/wayland/meta-wayland-cursor-surface.c | 1 + 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/backends/meta-cursor-renderer.c b/src/backends/meta-cursor-renderer.c index 46f561fe3..3353b17d3 100644 --- a/src/backends/meta-cursor-renderer.c +++ b/src/backends/meta-cursor-renderer.c @@ -97,9 +97,10 @@ meta_hw_cursor_inhibitor_default_init (MetaHwCursorInhibitorInterface *iface) void meta_cursor_renderer_emit_painted (MetaCursorRenderer *renderer, - MetaCursorSprite *cursor_sprite) + MetaCursorSprite *cursor_sprite, + ClutterStageView *stage_view) { - g_signal_emit (renderer, signals[CURSOR_PAINTED], 0, cursor_sprite); + g_signal_emit (renderer, signals[CURSOR_PAINTED], 0, cursor_sprite, stage_view); } static void @@ -177,7 +178,11 @@ meta_cursor_renderer_after_paint (ClutterStage *stage, clutter_stage_view_get_layout (stage_view, &view_layout); view_rect = meta_rectangle_to_graphene_rect (&view_layout); if (graphene_rect_intersection (&rect, &view_rect, NULL)) - meta_cursor_renderer_emit_painted (renderer, priv->displayed_cursor); + { + meta_cursor_renderer_emit_painted (renderer, + priv->displayed_cursor, + stage_view); + } } } @@ -308,8 +313,9 @@ meta_cursor_renderer_class_init (MetaCursorRendererClass *klass) G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, - G_TYPE_NONE, 1, - G_TYPE_POINTER); + G_TYPE_NONE, 2, + G_TYPE_POINTER, + CLUTTER_TYPE_STAGE_VIEW); } static void diff --git a/src/backends/meta-cursor-renderer.h b/src/backends/meta-cursor-renderer.h index 8d23cc6f5..f6de01bfb 100644 --- a/src/backends/meta-cursor-renderer.h +++ b/src/backends/meta-cursor-renderer.h @@ -72,7 +72,8 @@ graphene_rect_t meta_cursor_renderer_calculate_rect (MetaCursorRenderer *rendere MetaCursorSprite *cursor_sprite); void meta_cursor_renderer_emit_painted (MetaCursorRenderer *renderer, - MetaCursorSprite *cursor_sprite); + MetaCursorSprite *cursor_sprite, + ClutterStageView *stage_view); ClutterInputDevice * meta_cursor_renderer_get_input_device (MetaCursorRenderer *renderer); void meta_cursor_renderer_update_stage_overlay (MetaCursorRenderer *renderer, diff --git a/src/backends/native/meta-cursor-renderer-native.c b/src/backends/native/meta-cursor-renderer-native.c index 3899bd205..bb436b2c0 100644 --- a/src/backends/native/meta-cursor-renderer-native.c +++ b/src/backends/native/meta-cursor-renderer-native.c @@ -564,7 +564,9 @@ meta_cursor_renderer_native_prepare_frame (MetaCursorRendererNative *cursor_rend set_crtc_cursor (cursor_renderer_native, view, crtc, cursor_sprite); - meta_cursor_renderer_emit_painted (cursor_renderer, cursor_sprite); + meta_cursor_renderer_emit_painted (cursor_renderer, + cursor_sprite, + CLUTTER_STAGE_VIEW (view)); crtc_cursor_data->needs_sync_position = FALSE; crtc_cursor_data->hw_state_invalidated = FALSE; diff --git a/src/wayland/meta-wayland-cursor-surface.c b/src/wayland/meta-wayland-cursor-surface.c index 60c5d6c3d..a24f3a3be 100644 --- a/src/wayland/meta-wayland-cursor-surface.c +++ b/src/wayland/meta-wayland-cursor-surface.c @@ -334,6 +334,7 @@ meta_wayland_cursor_surface_get_hotspot (MetaWaylandCursorSurface *cursor_surfac static void on_cursor_painted (MetaCursorRenderer *renderer, MetaCursorSprite *displayed_sprite, + ClutterStageView *stage_view, MetaWaylandCursorSurface *cursor_surface) { MetaWaylandCursorSurfacePrivate *priv =