wayland/actor-surface: Do not use geometry scale to constrain regions

The regions and the surface size are all in surface coordinates, thus
don't use the geometry scale, otherwise we might not clip scaled actors
enough.

See also https://gitlab.gnome.org/GNOME/mutter/merge_requests/148

https://gitlab.gnome.org/GNOME/mutter/merge_requests/1036
This commit is contained in:
Robert Mader 2020-02-05 00:43:16 +01:00
parent cbef49fd74
commit ae1768bf4f

View File

@ -150,7 +150,6 @@ meta_wayland_actor_surface_real_sync_actor_state (MetaWaylandActorSurface *actor
MetaShapedTexture *stex; MetaShapedTexture *stex;
MetaWaylandBuffer *buffer; MetaWaylandBuffer *buffer;
cairo_rectangle_int_t surface_rect; cairo_rectangle_int_t surface_rect;
int geometry_scale;
MetaWaylandSurface *subsurface_surface; MetaWaylandSurface *subsurface_surface;
surface_actor = priv->actor; surface_actor = priv->actor;
@ -176,11 +175,9 @@ meta_wayland_actor_surface_real_sync_actor_state (MetaWaylandActorSurface *actor
meta_shaped_texture_set_texture (stex, NULL); meta_shaped_texture_set_texture (stex, NULL);
} }
/* Wayland surface coordinate space -> stage coordinate space */
geometry_scale = meta_wayland_actor_surface_get_geometry_scale (actor_surface);
surface_rect = (cairo_rectangle_int_t) { surface_rect = (cairo_rectangle_int_t) {
.width = meta_wayland_surface_get_width (surface) * geometry_scale, .width = meta_wayland_surface_get_width (surface),
.height = meta_wayland_surface_get_height (surface) * geometry_scale, .height = meta_wayland_surface_get_height (surface),
}; };
if (surface->input_region) if (surface->input_region)