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; } }