From 33b437d5744fe38f333f65a2346d7c2b041212d5 Mon Sep 17 00:00:00 2001 From: Alexander Orzechowski Date: Wed, 8 Nov 2023 18:23:51 -0500 Subject: [PATCH] wlr_scene: Amend scene_buffer.point_accepts_input to take coordinate pointers The pointers mean that we can mutate them. This will be useful later so we can hide details from the compositor when we clip subsurface trees. --- include/wlr/types/wlr_scene.h | 2 +- types/scene/surface.c | 4 ++-- types/scene/wlr_scene.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/wlr/types/wlr_scene.h b/include/wlr/types/wlr_scene.h index 1fa60b65..bb5f025d 100644 --- a/include/wlr/types/wlr_scene.h +++ b/include/wlr/types/wlr_scene.h @@ -45,7 +45,7 @@ struct wlr_linux_dmabuf_v1; struct wlr_output_state; typedef bool (*wlr_scene_buffer_point_accepts_input_func_t)( - struct wlr_scene_buffer *buffer, int sx, int sy); + struct wlr_scene_buffer *buffer, double *sx, double *sy); typedef void (*wlr_scene_buffer_iterator_func_t)( struct wlr_scene_buffer *buffer, int sx, int sy, void *user_data); diff --git a/types/scene/surface.c b/types/scene/surface.c index 1fe0762b..2fd6490f 100644 --- a/types/scene/surface.c +++ b/types/scene/surface.c @@ -148,11 +148,11 @@ static void handle_scene_surface_surface_commit( } static bool scene_buffer_point_accepts_input(struct wlr_scene_buffer *scene_buffer, - int sx, int sy) { + double *sx, double *sy) { struct wlr_scene_surface *scene_surface = wlr_scene_surface_try_from_buffer(scene_buffer); - return wlr_surface_point_accepts_input(scene_surface->surface, sx, sy); + return wlr_surface_point_accepts_input(scene_surface->surface, *sx, *sy); } static void surface_addon_destroy(struct wlr_addon *addon) { diff --git a/types/scene/wlr_scene.c b/types/scene/wlr_scene.c index 9df7dd22..89c9b679 100644 --- a/types/scene/wlr_scene.c +++ b/types/scene/wlr_scene.c @@ -1064,7 +1064,7 @@ static bool scene_node_at_iterator(struct wlr_scene_node *node, struct wlr_scene_buffer *scene_buffer = wlr_scene_buffer_from_node(node); if (scene_buffer->point_accepts_input && - !scene_buffer->point_accepts_input(scene_buffer, rx, ry)) { + !scene_buffer->point_accepts_input(scene_buffer, &rx, &ry)) { return false; } }