From da59ffa8a059f6504868f4d93c5d62f099ab77b6 Mon Sep 17 00:00:00 2001
From: vilhalmer <vil@vil.lv>
Date: Sun, 3 Feb 2019 13:41:35 -0500
Subject: Skip wildcard seat config in destroy_removed_seats

---
 sway/config.c | 5 +++++
 1 file changed, 5 insertions(+)

(limited to 'sway')

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) {
-- 
cgit v1.2.3


From 907595b10db44dee9f366ff36947c63bf6433fee Mon Sep 17 00:00:00 2001
From: vilhalmer <vil@vil.lv>
Date: Sun, 3 Feb 2019 13:44:37 -0500
Subject: Skip constraining cursor if no seat config

---
 sway/input/cursor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'sway')

diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index c38d8d3a..5e1cdaed 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -1459,7 +1459,7 @@ 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->allow_constrain == CONSTRAIN_DISABLE) {
 		return;
 	}
 
-- 
cgit v1.2.3


From f8a91171491c1e8a3591461aa540511ec4fe4875 Mon Sep 17 00:00:00 2001
From: vilhalmer <vil@vil.lv>
Date: Sun, 3 Feb 2019 13:46:44 -0500
Subject: Fall back to wildcard in sway_cursor_constrain

---
 sway/input/cursor.c | 4 ++++
 1 file changed, 4 insertions(+)

(limited to 'sway')

diff --git a/sway/input/cursor.c b/sway/input/cursor.c
index 5e1cdaed..01aae79d 100644
--- a/sway/input/cursor.c
+++ b/sway/input/cursor.c
@@ -1459,6 +1459,10 @@ 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) {
+		config = seat_get_config_by_name("*");
+	}
+
 	if (!config || config->allow_constrain == CONSTRAIN_DISABLE) {
 		return;
 	}
-- 
cgit v1.2.3