From 4ee4a36c0cc961c93e48a7994dbe55173f827d25 Mon Sep 17 00:00:00 2001 From: Isaac Freund Date: Thu, 7 Jan 2021 15:11:29 +0100 Subject: layer shell: add wlr_layer_surface_v1_popup_surface_at() This function will allow compositors to implement input handling in a way consistent with rendering more easily. Calling wlr_layer_surface_v1_surface_at() and checking if the result is a wlr_xdg_popup is flawed as there may be subsurfaces in the popup tree. --- include/wlr/types/wlr_layer_shell_v1.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include/wlr') diff --git a/include/wlr/types/wlr_layer_shell_v1.h b/include/wlr/types/wlr_layer_shell_v1.h index f13eadb7..007c612b 100644 --- a/include/wlr/types/wlr_layer_shell_v1.h +++ b/include/wlr/types/wlr_layer_shell_v1.h @@ -151,4 +151,13 @@ struct wlr_surface *wlr_layer_surface_v1_surface_at( struct wlr_layer_surface_v1 *surface, double sx, double sy, double *sub_x, double *sub_y); +/** + * Find a surface within this layer-surface's popup tree at the given + * surface-local coordinates. Returns the surface and coordinates in the leaf + * surface coordinate system or NULL if no surface is found at that location. + */ +struct wlr_surface *wlr_layer_surface_v1_popup_surface_at( + struct wlr_layer_surface_v1 *surface, double sx, double sy, + double *sub_x, double *sub_y); + #endif -- cgit v1.2.3