diff --git a/meson.build b/meson.build index ababd6eb2..c0859a47d 100644 --- a/meson.build +++ b/meson.build @@ -43,7 +43,7 @@ gudev_req = '>= 232' # wayland version requirements wayland_server_req = '>= 1.13.0' -wayland_protocols_req = '>= 1.18' +wayland_protocols_req = '>= 1.19' # native backend version requirements libinput_req = '>= 1.7' diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c index 8f4b7a0e7..3aad9fe5b 100644 --- a/src/wayland/meta-wayland-xdg-shell.c +++ b/src/wayland/meta-wayland-xdg-shell.c @@ -66,6 +66,8 @@ typedef struct _MetaWaylandXdgPositioner uint32_t constraint_adjustment; int32_t offset_x; int32_t offset_y; + + gboolean is_reactive; } MetaWaylandXdgPositioner; typedef struct _MetaWaylandXdgSurfaceConstructor @@ -1913,6 +1915,8 @@ meta_wayland_xdg_positioner_to_placement (MetaWaylandXdgPositioner *xdg_position .width = xdg_positioner->width, .height = xdg_positioner->height, + .is_reactive = xdg_positioner->is_reactive, + .parent_rect = parent_rect, }; } @@ -2037,6 +2041,15 @@ xdg_positioner_set_offset (struct wl_client *client, positioner->offset_y = y; } +static void +xdg_positioner_set_reactive (struct wl_client *client, + struct wl_resource *resource) +{ + MetaWaylandXdgPositioner *positioner = wl_resource_get_user_data (resource); + + positioner->is_reactive = TRUE; +} + static const struct xdg_positioner_interface meta_wayland_xdg_positioner_interface = { xdg_positioner_destroy, xdg_positioner_set_size, @@ -2045,6 +2058,7 @@ static const struct xdg_positioner_interface meta_wayland_xdg_positioner_interfa xdg_positioner_set_gravity, xdg_positioner_set_constraint_adjustment, xdg_positioner_set_offset, + xdg_positioner_set_reactive, }; static void