diff options
author | Drew DeVault <[email protected]> | 2018-04-03 17:03:29 -0400 |
---|---|---|
committer | Drew DeVault <[email protected]> | 2018-04-04 18:47:48 -0400 |
commit | b7e779491232b825f6edc0b199e7564e93f1e332 (patch) | |
tree | 00457213fa57ec07692bb093392a83203e0e9960 /sway/input/input-manager.c | |
parent | 06fbd51ff5563f548599615a6baf5a1854bf9983 (diff) |
Implement input-inhibit in sway, swaylock
Diffstat (limited to 'sway/input/input-manager.c')
-rw-r--r-- | sway/input/input-manager.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sway/input/input-manager.c b/sway/input/input-manager.c index 3b2d1d55..f71a06e4 100644 --- a/sway/input/input-manager.c +++ b/sway/input/input-manager.c @@ -279,6 +279,14 @@ static void handle_inhibit_deactivate(struct wl_listener *listener, void *data) struct sway_seat *seat; wl_list_for_each(seat, &input_manager->seats, link) { seat_set_exclusive_client(seat, NULL); + struct sway_container *previous = seat_get_focus(seat); + if (previous) { + wlr_log(L_DEBUG, "Returning focus to %p %s '%s'", previous, + container_type_to_str(previous->type), previous->name); + // Hack to get seat to re-focus the return value of get_focus + seat_set_focus(seat, previous->parent); + seat_set_focus(seat, previous); + } } } |