aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorIsaac Freund <ifreund@ifreund.xyz>2021-01-07 15:11:29 +0100
committerSimon Ser <contact@emersion.fr>2021-01-08 12:05:13 +0100
commit4ee4a36c0cc961c93e48a7994dbe55173f827d25 (patch)
tree87e3db0d8e3450b7af8f622b8112691fd2e89f13 /include
parent8f63557ed7695a8ae5a4acb85a2693dc36be85bb (diff)
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.
Diffstat (limited to 'include')
-rw-r--r--include/wlr/types/wlr_layer_shell_v1.h9
1 files changed, 9 insertions, 0 deletions
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