diff options
-rw-r--r-- | sway/input/cursor.c | 10 | ||||
-rw-r--r-- | sway/tree/container.c | 9 |
2 files changed, 3 insertions, 16 deletions
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, | |||
30 | sway_layer->layer_surface->surface; | 30 | sway_layer->layer_surface->surface; |
31 | double _sx = ox - sway_layer->geo.x; | 31 | double _sx = ox - sway_layer->geo.x; |
32 | double _sy = oy - sway_layer->geo.y; | 32 | double _sy = oy - sway_layer->geo.y; |
33 | struct wlr_box box = { | ||
34 | .x = sway_layer->geo.x, | ||
35 | .y = sway_layer->geo.y, | ||
36 | .width = wlr_surface->current->width, | ||
37 | .height = wlr_surface->current->height, | ||
38 | }; | ||
39 | // TODO: Test popups/subsurfaces | 33 | // TODO: Test popups/subsurfaces |
40 | if (wlr_box_contains_point(&box, ox, oy) && | 34 | if (wlr_surface_point_accepts_input(wlr_surface, _sx, _sy)) { |
41 | pixman_region32_contains_point( | ||
42 | &wlr_surface->current->input, _sx, _sy, NULL)) { | ||
43 | *sx = _sx; | 35 | *sx = _sx; |
44 | *sy = _sy; | 36 | *sy = _sy; |
45 | return wlr_surface; | 37 | 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, | |||
290 | double oy = ly - output_box->y; | 290 | double oy = ly - output_box->y; |
291 | double view_sx = ox - swayc->x; | 291 | double view_sx = ox - swayc->x; |
292 | double view_sy = oy - swayc->y; | 292 | double view_sy = oy - swayc->y; |
293 | int width = swayc->sway_view->surface->current->width; | ||
294 | int height = swayc->sway_view->surface->current->height; | ||
295 | 293 | ||
296 | switch (sview->type) { | 294 | switch (sview->type) { |
297 | case SWAY_WL_SHELL_VIEW: | 295 | case SWAY_WL_SHELL_VIEW: |
@@ -333,11 +331,8 @@ struct sway_container *container_at(struct sway_container *parent, | |||
333 | return swayc; | 331 | return swayc; |
334 | } | 332 | } |
335 | 333 | ||
336 | if (view_sx > 0 && view_sx < width && | 334 | if (wlr_surface_point_accepts_input( |
337 | view_sy > 0 && view_sy < height && | 335 | sview->surface, view_sx, view_sy)) { |
338 | pixman_region32_contains_point( | ||
339 | &sview->surface->current->input, | ||
340 | view_sx, view_sy, NULL)) { | ||
341 | *sx = view_sx; | 336 | *sx = view_sx; |
342 | *sy = view_sy; | 337 | *sy = view_sy; |
343 | *surface = swayc->sway_view->surface; | 338 | *surface = swayc->sway_view->surface; |