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.
This commit is contained in:
Isaac Freund 2021-01-07 15:11:29 +01:00 committed by Simon Ser
parent 8f63557ed7
commit 4ee4a36c0c
2 changed files with 21 additions and 1 deletions

View file

@ -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