summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2022-12-03 10:24:25 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2022-12-03 15:21:46 -0300
commit1f705ee10a9362abfddac3594354fe0d5a5d423e (patch)
tree84511f75cfb826e4d4868a38aebb9a39e9fd57d3
parent4d4e8e586233344bf4d7d04d49b8cfb47bd98fc2 (diff)
downloadmutter-1f705ee10a9362abfddac3594354fe0d5a5d423e.tar.gz
window-actor: Apply resource scale to cursor position
meta_screen_cast_window_stream_src_set_cursor_metadata() relies entirely on meta_screen_cast_window_transform_cursor_position() to return the correct relative cursor position. However, this function actually does not return the expected values, since it does not apply the resource scale to the transformed position. Actually apply the cursor scale when calculating the cursor position. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2737>
-rw-r--r--src/compositor/meta-window-actor.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 43f543d00..d63d7e600 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -1243,11 +1243,18 @@ meta_window_actor_transform_cursor_position (MetaScreenCastWindow *screen_cast_w
if (out_relative_cursor_position)
{
+ float resource_scale;
+
clutter_actor_transform_stage_point (CLUTTER_ACTOR (priv->surface),
cursor_position->x,
cursor_position->y,
&out_relative_cursor_position->x,
&out_relative_cursor_position->y);
+
+ resource_scale =
+ clutter_actor_get_resource_scale (CLUTTER_ACTOR (window_actor));
+ out_relative_cursor_position->x *= resource_scale;
+ out_relative_cursor_position->y *= resource_scale;
}
return TRUE;