diff --git a/sway/input/cursor.c b/sway/input/cursor.c index b498a517..7390816f 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -30,16 +30,8 @@ static struct wlr_surface *layer_surface_at(struct sway_output *output, sway_layer->layer_surface->surface; double _sx = ox - sway_layer->geo.x; double _sy = oy - sway_layer->geo.y; - struct wlr_box box = { - .x = sway_layer->geo.x, - .y = sway_layer->geo.y, - .width = wlr_surface->current->width, - .height = wlr_surface->current->height, - }; // TODO: Test popups/subsurfaces - if (wlr_box_contains_point(&box, ox, oy) && - pixman_region32_contains_point( - &wlr_surface->current->input, _sx, _sy, NULL)) { + if (wlr_surface_point_accepts_input(wlr_surface, _sx, _sy)) { *sx = _sx; *sy = _sy; return wlr_surface; diff --git a/sway/tree/container.c b/sway/tree/container.c index 8705edc7..746dbf1f 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -290,8 +290,6 @@ struct sway_container *container_at(struct sway_container *parent, double oy = ly - output_box->y; double view_sx = ox - swayc->x; double view_sy = oy - swayc->y; - int width = swayc->sway_view->surface->current->width; - int height = swayc->sway_view->surface->current->height; switch (sview->type) { case SWAY_WL_SHELL_VIEW: @@ -333,11 +331,8 @@ struct sway_container *container_at(struct sway_container *parent, return swayc; } - if (view_sx > 0 && view_sx < width && - view_sy > 0 && view_sy < height && - pixman_region32_contains_point( - &sview->surface->current->input, - view_sx, view_sy, NULL)) { + if (wlr_surface_point_accepts_input( + sview->surface, view_sx, view_sy)) { *sx = view_sx; *sy = view_sy; *surface = swayc->sway_view->surface;