aboutsummaryrefslogtreecommitdiff
path: root/rootston/cursor.c
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2018-04-05 15:04:49 -0400
committerDrew DeVault <sir@cmpwn.com>2018-04-05 15:04:49 -0400
commit6710de9878a07a185d28f9cec71e3f1b3d3407ab (patch)
treedec44173de7b133fbac0230ac2530af4c4ff0bc7 /rootston/cursor.c
parent41fccb8507bcc1b18cff0c785c5697f9f0bdceda (diff)
parent19b576734e75d65ed6e28b13131f20f6444cba48 (diff)
Merge branch 'master' into xwayland-dnd
Diffstat (limited to 'rootston/cursor.c')
-rw-r--r--rootston/cursor.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/rootston/cursor.c b/rootston/cursor.c
index ac46ff5d..21e32a09 100644
--- a/rootston/cursor.c
+++ b/rootston/cursor.c
@@ -111,6 +111,9 @@ static void roots_passthrough_cursor(struct roots_cursor *cursor,
if (surface) {
client = wl_resource_get_client(surface->resource);
}
+ if (surface && !roots_seat_allow_input(cursor->seat, surface->resource)) {
+ return;
+ }
if (cursor->cursor_client != client) {
wlr_xcursor_manager_set_cursor_image(cursor->xcursor_manager,
@@ -327,7 +330,7 @@ void roots_cursor_handle_touch_down(struct roots_cursor *cursor,
desktop, lx, ly, &sx, &sy, NULL);
uint32_t serial = 0;
- if (surface) {
+ if (surface && roots_seat_allow_input(cursor->seat, surface->resource)) {
serial = wlr_seat_touch_notify_down(cursor->seat->seat, surface,
event->time_msec, event->touch_id, sx, sy);
}
@@ -378,7 +381,7 @@ void roots_cursor_handle_touch_motion(struct roots_cursor *cursor,
struct wlr_surface *surface = desktop_surface_at(
desktop, lx, ly, &sx, &sy, NULL);
- if (surface) {
+ if (surface && roots_seat_allow_input(cursor->seat, surface->resource)) {
wlr_seat_touch_point_focus(cursor->seat->seat, surface,
event->time_msec, event->touch_id, sx, sy);
wlr_seat_touch_notify_motion(cursor->seat->seat, event->time_msec,