diff options
-rw-r--r-- | sway/input/seat.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c index 82e0e754..1a4ccd77 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -357,6 +357,14 @@ struct sway_seat *seat_create(const char *seat_name) { | |||
357 | root_for_each_workspace(collect_focus_workspace_iter, seat); | 357 | root_for_each_workspace(collect_focus_workspace_iter, seat); |
358 | root_for_each_container(collect_focus_container_iter, seat); | 358 | root_for_each_container(collect_focus_container_iter, seat); |
359 | 359 | ||
360 | if (!wl_list_empty(&server.input->seats)) { | ||
361 | // Since this is not the first seat, attempt to set initial focus | ||
362 | struct sway_seat *current_seat = input_manager_current_seat(); | ||
363 | struct sway_node *current_focus = | ||
364 | seat_get_focus_inactive(current_seat, &root->node); | ||
365 | seat_set_focus(seat, current_focus); | ||
366 | } | ||
367 | |||
360 | wl_signal_add(&root->events.new_node, &seat->new_node); | 368 | wl_signal_add(&root->events.new_node, &seat->new_node); |
361 | seat->new_node.notify = handle_new_node; | 369 | seat->new_node.notify = handle_new_node; |
362 | 370 | ||