summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2022-12-03 10:24:25 -0300
committerRobert Mader <robert.mader@collabora.com>2023-01-06 13:50:41 +0100
commit50c4ab3959fd4afecc4c2782a8759752cd1a4c1b (patch)
treedfaccde75217a7d064f6de1263f439e4c68aa33d
parenteae6bdfd68a2e9dc6f2e4b6fa9e5268ccd9075ef (diff)
downloadmutter-50c4ab3959fd4afecc4c2782a8759752cd1a4c1b.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> (cherry picked from commit 1f705ee10a9362abfddac3594354fe0d5a5d423e)
-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 fcf97ae85..12674bdd8 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -1239,11 +1239,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;