diff options
author | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2022-12-03 10:24:25 -0300 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2022-12-03 15:21:46 -0300 |
commit | 1f705ee10a9362abfddac3594354fe0d5a5d423e (patch) | |
tree | 84511f75cfb826e4d4868a38aebb9a39e9fd57d3 | |
parent | 4d4e8e586233344bf4d7d04d49b8cfb47bd98fc2 (diff) | |
download | mutter-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.c | 7 |
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; |