diff options
| author | Drew DeVault <[email protected]> | 2018-10-23 14:18:58 +0200 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2018-10-23 14:18:58 +0200 | 
| commit | 862a4f69bed4ef32a67798f04a73d7006a67160a (patch) | |
| tree | f322fea2219b911acf78062b94b385dec8df32f6 /sway/input | |
| parent | e33671fd9a478a917250b2e3b889c9ee0e49c65c (diff) | |
| parent | 9c965ec58cb0cf29e795df7670fd512e74b538d3 (diff) | |
Merge pull request #2944 from RyanDwyer/fix-multiseat-dormant-cursor
Fix dormant cursor when using multiple seats
Diffstat (limited to 'sway/input')
| -rw-r--r-- | sway/input/cursor.c | 3 | ||||
| -rw-r--r-- | sway/input/seat.c | 7 | 
2 files changed, 8 insertions, 2 deletions
| diff --git a/sway/input/cursor.c b/sway/input/cursor.c index a07bc53b..60d4bf5d 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -1220,6 +1220,9 @@ static void handle_request_set_cursor(struct wl_listener *listener,  void cursor_set_image(struct sway_cursor *cursor, const char *image,  		struct wl_client *client) { +	if (!(cursor->seat->wlr_seat->capabilities & WL_SEAT_CAPABILITY_POINTER)) { +		return; +	}  	if (!image) {  		wlr_cursor_set_image(cursor->cursor, NULL, 0, 0, 0, 0, 0, 0);  	} else if (!cursor->image || strcmp(cursor->image, image) != 0) { 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);  	}  } | 
