aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sway/input/seat.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c
index 16acc8a5..89d841bb 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -389,12 +389,15 @@ static void seat_update_capabilities(struct sway_seat *seat) {
break;
}
}
- wlr_seat_set_capabilities(seat->wlr_seat, caps);
- // Hide cursor if seat doesn't have pointer capability
+ // Hide cursor if seat doesn't have pointer capability.
+ // We must call cursor_set_image while the wlr_seat has the capabilities
+ // otherwise it's a no op.
if ((caps & WL_SEAT_CAPABILITY_POINTER) == 0) {
cursor_set_image(seat->cursor, NULL, NULL);
+ wlr_seat_set_capabilities(seat->wlr_seat, caps);
} else {
+ wlr_seat_set_capabilities(seat->wlr_seat, caps);
cursor_set_image(seat->cursor, "left_ptr", NULL);
}
}