[mutter] wayland/wl-shell: Use input region as window geometry if set
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] wayland/wl-shell: Use input region as window geometry if set
- Date: Mon, 9 Dec 2019 09:19:38 +0000 (UTC)
commit cb91f44ba473b3d46dd8cc95774ff5b161a82e97
Author: Jonas Ådahl <jadahl gmail com>
Date: Fri Jul 5 17:43:24 2019 +0200
wayland/wl-shell: Use input region as window geometry if set
Historically, wl_shell clients used to pretend the input region was
equivalent to the window geometry, so for "correctness" lets do that
here too. This makes wl_shell clients with drop shadow behave marginally
better than before.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/907
src/wayland/meta-wayland-wl-shell.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
---
diff --git a/src/wayland/meta-wayland-wl-shell.c b/src/wayland/meta-wayland-wl-shell.c
index 6ab29ce64..12d0dee0b 100644
--- a/src/wayland/meta-wayland-wl-shell.c
+++ b/src/wayland/meta-wayland-wl-shell.c
@@ -573,6 +573,7 @@ wl_shell_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
MetaWaylandSurface *surface =
meta_wayland_surface_role_get_surface (surface_role);
MetaWindow *window = surface->window;
+ cairo_region_t *input_region;
MetaRectangle geom = { 0 };
surface_role_class =
@@ -601,7 +602,17 @@ wl_shell_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
if (!pending->newly_attached)
return;
- meta_wayland_shell_surface_calculate_geometry (shell_surface, &geom);
+ input_region = meta_wayland_surface_calculate_input_region (surface);
+ if (!cairo_region_is_empty (input_region))
+ {
+ cairo_region_get_extents (input_region, &geom);
+ cairo_region_destroy (input_region);
+ }
+ else
+ {
+ meta_wayland_shell_surface_calculate_geometry (shell_surface, &geom);
+ }
+
meta_window_wayland_finish_move_resize (window,
NULL,
geom, pending->dx, pending->dy);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]