diff --git a/types/scene/wlr_scene.c b/types/scene/wlr_scene.c index 4004b500..2d3dccde 100644 --- a/types/scene/wlr_scene.c +++ b/types/scene/wlr_scene.c @@ -528,14 +528,11 @@ struct wlr_scene_node *wlr_scene_node_at(struct wlr_scene_node *node, struct wlr_scene_surface *scene_surface = wlr_scene_surface_from_node(node); intersects = wlr_surface_point_accepts_input(scene_surface->surface, lx, ly); break; - case WLR_SCENE_NODE_RECT:; - struct wlr_scene_rect *rect = scene_rect_from_node(node); - intersects = lx >= 0 && lx < rect->width && ly >= 0 && ly < rect->height; - break; + case WLR_SCENE_NODE_RECT: case WLR_SCENE_NODE_BUFFER:; - struct wlr_scene_buffer *scene_buffer = scene_buffer_from_node(node); - intersects = lx >= 0 && lx < scene_buffer->buffer->width && - ly >= 0 && ly < scene_buffer->buffer->height; + int width, height; + scene_node_get_size(node, &width, &height); + intersects = lx >= 0 && lx < width && ly >= 0 && ly < height; break; }