diff options
Diffstat (limited to 'sway')
| -rw-r--r-- | sway/config.c | 5 | ||||
| -rw-r--r-- | sway/input/cursor.c | 6 | 
2 files changed, 10 insertions, 1 deletions
| diff --git a/sway/config.c b/sway/config.c index 7cb27d95..54d29fc9 100644 --- a/sway/config.c +++ b/sway/config.c @@ -141,6 +141,11 @@ static void destroy_removed_seats(struct sway_config *old_config,  	int i;  	for (i = 0; i < old_config->seat_configs->length; i++) {  		seat_config = old_config->seat_configs->items[i]; +		// Skip the wildcard seat config, it won't have a matching real seat. +		if (strcmp(seat_config->name, "*") == 0) { +			continue; +		} +  		/* Also destroy seats that aren't present in new config */  		if (new_config && list_seq_find(new_config->seat_configs,  				seat_name_cmp, seat_config->name) < 0) { diff --git a/sway/input/cursor.c b/sway/input/cursor.c index c38d8d3a..01aae79d 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -1459,7 +1459,11 @@ void handle_pointer_constraint(struct wl_listener *listener, void *data) {  void sway_cursor_constrain(struct sway_cursor *cursor,  		struct wlr_pointer_constraint_v1 *constraint) {  	struct seat_config *config = seat_get_config(cursor->seat); -	if (config->allow_constrain == CONSTRAIN_DISABLE) { +	if (!config) { +		config = seat_get_config_by_name("*"); +	} + +	if (!config || config->allow_constrain == CONSTRAIN_DISABLE) {  		return;  	} | 
