shell: Don't assign keyboard focus for seats without keyboard

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=73570
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 79e6518..137ec7a 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -665,6 +665,9 @@
 	struct weston_surface *surface;
 
 	wl_list_for_each_safe(state, next, &ws->focus_list, link) {
+		if (state->seat->keyboard == NULL)
+			continue;
+
 		surface = state->keyboard_focus;
 
 		weston_keyboard_set_focus(state->seat->keyboard, surface);