mirror of
https://github.com/swaywm/sway.git
synced 2024-12-30 17:06:40 +01:00
Merge pull request #3563 from vilhalmer/fix-wildcard-seat-constrain-crashes-during-reconfig
Fix wildcard seat constrain crashes during reconfig
This commit is contained in:
commit
8e60efe0bf
2 changed files with 10 additions and 1 deletions
|
@ -141,6 +141,11 @@ static void destroy_removed_seats(struct sway_config *old_config,
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < old_config->seat_configs->length; i++) {
|
for (i = 0; i < old_config->seat_configs->length; i++) {
|
||||||
seat_config = old_config->seat_configs->items[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 */
|
/* Also destroy seats that aren't present in new config */
|
||||||
if (new_config && list_seq_find(new_config->seat_configs,
|
if (new_config && list_seq_find(new_config->seat_configs,
|
||||||
seat_name_cmp, seat_config->name) < 0) {
|
seat_name_cmp, seat_config->name) < 0) {
|
||||||
|
|
|
@ -1459,7 +1459,11 @@ void handle_pointer_constraint(struct wl_listener *listener, void *data) {
|
||||||
void sway_cursor_constrain(struct sway_cursor *cursor,
|
void sway_cursor_constrain(struct sway_cursor *cursor,
|
||||||
struct wlr_pointer_constraint_v1 *constraint) {
|
struct wlr_pointer_constraint_v1 *constraint) {
|
||||||
struct seat_config *config = seat_get_config(cursor->seat);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue