diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-01-21 23:46:44 -0500 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-01-22 09:33:58 +0100 |
commit | ab0248a54564b2f644b6fb367f9eb44fe0bf5f3c (patch) | |
tree | 67899b5c7967c33b81c71a0e6f8df034078a29dd /sway/input | |
parent | 39cf4770906989ddef52cd6352d3799f9d7e9e93 (diff) |
seat_create: set initial focus for added seats
This sets the initial focus for all seats other than the first seat,
which gets it focus on launch. The ensures that all seats have something
focused.
Diffstat (limited to 'sway/input')
-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) { root_for_each_workspace(collect_focus_workspace_iter, seat); root_for_each_container(collect_focus_container_iter, seat); + if (!wl_list_empty(&server.input->seats)) { + // Since this is not the first seat, attempt to set initial focus + struct sway_seat *current_seat = input_manager_current_seat(); + struct sway_node *current_focus = + seat_get_focus_inactive(current_seat, &root->node); + seat_set_focus(seat, current_focus); + } + wl_signal_add(&root->events.new_node, &seat->new_node); seat->new_node.notify = handle_new_node; |