summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2022-12-03 10:36:26 -0300
committerRobert Mader <robert.mader@collabora.com>2023-01-06 13:50:41 +0100
commitb9931533a24a1feb2e56b0d6aa44afe0b495981f (patch)
tree99180b554b21e0ec5d66df47dc260edf1506750f
parent50c4ab3959fd4afecc4c2782a8759752cd1a4c1b (diff)
downloadmutter-b9931533a24a1feb2e56b0d6aa44afe0b495981f.tar.gz
window-actor: Use logical monitor scale on cursor scale
When using 'scale-monitor-framebuffer', it's important to use the monitor's scale on top of the cursor texture scale. This matches what the monitor screencast source does. Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/1541 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2737> (cherry picked from commit 381de44c5dd50ec61f583239a11d5a9c35c5f05d)
-rw-r--r--src/compositor/meta-window-actor.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 12674bdd8..02e81f0aa 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -1218,15 +1218,20 @@ meta_window_actor_transform_cursor_position (MetaScreenCastWindow *screen_cast_w
meta_cursor_sprite_get_cogl_texture (cursor_sprite) &&
out_cursor_scale)
{
- MetaShapedTexture *stex;
- double texture_scale;
+ MetaLogicalMonitor *logical_monitor;
+ float view_scale;
float cursor_texture_scale;
- stex = meta_surface_actor_get_texture (priv->surface);
- texture_scale = meta_shaped_texture_get_buffer_scale (stex);
+ logical_monitor = meta_window_get_main_logical_monitor (window);
+
+ if (meta_is_stage_views_scaled ())
+ view_scale = meta_logical_monitor_get_scale (logical_monitor);
+ else
+ view_scale = 1.0;
+
cursor_texture_scale = meta_cursor_sprite_get_texture_scale (cursor_sprite);
- *out_cursor_scale = texture_scale / cursor_texture_scale;
+ *out_cursor_scale = view_scale * cursor_texture_scale;
}
if (cursor_sprite &&