diff options
author | 2018-09-24 12:29:47 +0100 | |
---|---|---|
committer | 2018-09-24 12:34:09 +0100 | |
commit | a10fef9ae8ca66ad98fb837f163f5c3bbe19d0b9 (patch) | |
tree | f3a72db45939b53815022735f1a0c7231ef79330 /sway/input | |
parent | seat: only show cursor if pointer configured (diff) | |
download | sway-a10fef9ae8ca66ad98fb837f163f5c3bbe19d0b9.tar.gz sway-a10fef9ae8ca66ad98fb837f163f5c3bbe19d0b9.tar.zst sway-a10fef9ae8ca66ad98fb837f163f5c3bbe19d0b9.zip |
cursor: allow cursor_set_image to accept a NULL image to hide cursor
Diffstat (limited to 'sway/input')
-rw-r--r-- | sway/input/cursor.c | 9 | ||||
-rw-r--r-- | sway/input/seat.c | 5 |
2 files changed, 7 insertions, 7 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c index 5111e8e5..8c9f65ab 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c | |||
@@ -1006,8 +1006,7 @@ static void handle_touch_down(struct wl_listener *listener, void *data) { | |||
1006 | if (seat_is_input_allowed(seat, surface)) { | 1006 | if (seat_is_input_allowed(seat, surface)) { |
1007 | wlr_seat_touch_notify_down(wlr_seat, surface, event->time_msec, | 1007 | wlr_seat_touch_notify_down(wlr_seat, surface, event->time_msec, |
1008 | event->touch_id, sx, sy); | 1008 | event->touch_id, sx, sy); |
1009 | cursor->image_client = NULL; | 1009 | cursor_set_image(cursor, NULL, NULL); |
1010 | wlr_cursor_set_image(cursor->cursor, NULL, 0, 0, 0, 0, 0, 0); | ||
1011 | } | 1010 | } |
1012 | } | 1011 | } |
1013 | 1012 | ||
@@ -1175,11 +1174,13 @@ static void handle_request_set_cursor(struct wl_listener *listener, | |||
1175 | 1174 | ||
1176 | void cursor_set_image(struct sway_cursor *cursor, const char *image, | 1175 | void cursor_set_image(struct sway_cursor *cursor, const char *image, |
1177 | struct wl_client *client) { | 1176 | struct wl_client *client) { |
1178 | if (!cursor->image || strcmp(cursor->image, image) != 0) { | 1177 | if (!image) { |
1178 | wlr_cursor_set_image(cursor->cursor, NULL, 0, 0, 0, 0, 0, 0); | ||
1179 | } else if (!cursor->image || strcmp(cursor->image, image) != 0) { | ||
1179 | wlr_xcursor_manager_set_cursor_image(cursor->xcursor_manager, image, | 1180 | wlr_xcursor_manager_set_cursor_image(cursor->xcursor_manager, image, |
1180 | cursor->cursor); | 1181 | cursor->cursor); |
1181 | cursor->image = image; | ||
1182 | } | 1182 | } |
1183 | cursor->image = image; | ||
1183 | cursor->image_client = client; | 1184 | cursor->image_client = client; |
1184 | } | 1185 | } |
1185 | 1186 | ||
diff --git a/sway/input/seat.c b/sway/input/seat.c index 34fc1ab8..4817eae7 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -378,7 +378,7 @@ static void seat_update_capabilities(struct sway_seat *seat) { | |||
378 | 378 | ||
379 | // Hide cursor if seat doesn't have pointer capability | 379 | // Hide cursor if seat doesn't have pointer capability |
380 | if ((caps & WL_SEAT_CAPABILITY_POINTER) == 0) { | 380 | if ((caps & WL_SEAT_CAPABILITY_POINTER) == 0) { |
381 | wlr_cursor_set_image(seat->cursor->cursor, NULL, 0, 0, 0, 0, 0, 0); | 381 | cursor_set_image(seat->cursor, NULL, NULL); |
382 | } else { | 382 | } else { |
383 | cursor_set_image(seat->cursor, "left_ptr", NULL); | 383 | cursor_set_image(seat->cursor, "left_ptr", NULL); |
384 | } | 384 | } |
@@ -561,8 +561,7 @@ void seat_configure_xcursor(struct sway_seat *seat) { | |||
561 | output->name, (double)output->scale); | 561 | output->name, (double)output->scale); |
562 | } | 562 | } |
563 | 563 | ||
564 | wlr_xcursor_manager_set_cursor_image(seat->cursor->xcursor_manager, | 564 | cursor_set_image(seat->cursor, "left_ptr", NULL); |
565 | "left_ptr", seat->cursor->cursor); | ||
566 | wlr_cursor_warp(seat->cursor->cursor, NULL, seat->cursor->cursor->x, | 565 | wlr_cursor_warp(seat->cursor->cursor, NULL, seat->cursor->cursor->x, |
567 | seat->cursor->cursor->y); | 566 | seat->cursor->cursor->y); |
568 | } | 567 | } |