diff --git a/sway/handlers.c b/sway/handlers.c index 8726a0b2..cdf76554 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -85,7 +85,8 @@ bool handle_key(wlc_handle view, uint32_t time, const struct wlc_modifiers bool pointer_test(swayc_t *view, void *_origin) { const struct wlc_origin *origin = _origin; if (view->type == C_VIEW && origin->x >= view->x && origin->y >= view->y - && origin->x < view->x + view->width && origin->y < view->y + view->height) { + && origin->x < view->x + view->width && origin->y < view->y + view->height + && view->visible) { return true; } return false; diff --git a/sway/layout.h b/sway/layout.h index 3a8f8902..c4b193c8 100644 --- a/sway/layout.h +++ b/sway/layout.h @@ -29,7 +29,9 @@ struct sway_container { int x, y; - int weight; + bool visible; + + int weight; char *name; diff --git a/sway/workspace.c b/sway/workspace.c index 1c8cef2c..d88e2786 100644 --- a/sway/workspace.c +++ b/sway/workspace.c @@ -40,6 +40,7 @@ void set_mask(swayc_t *view, void *data) { if(view->type == C_VIEW) { wlc_view_set_mask(view->handle, *p); + view->visible = (*p == 2); } }