sway

i3-compatible Wayland compositor
git clone https://git.awy.one/sway
Log | Files | Refs | README | LICENSE

commit 0bf3b88019b038f7465b5e333742baacfe0a9eed
parent 56078edd65d05c1db1aa5d6e72134499e907063d
Author: Drew DeVault <sir@cmpwn.com>
Date:   Mon,  2 Apr 2018 21:17:16 -0400

Give layer shells under the shell layer focus

Diffstat:
Msway/input/cursor.c | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/sway/input/cursor.c b/sway/input/cursor.c @@ -180,13 +180,18 @@ static void handle_cursor_button(struct wl_listener *listener, void *data) { double sx, sy; struct sway_container *cont = container_at_cursor(cursor, &surface, &sx, &sy); + if (surface && wlr_surface_is_layer_surface(surface)) { + struct wlr_layer_surface *layer = + wlr_layer_surface_from_wlr_surface(surface); + if (layer->current.keyboard_interactive) { + seat_set_focus_layer(cursor->seat, layer); + return; + } + } // Avoid moving keyboard focus from a surface that accepts it to one // that does not unless the change would move us to a new workspace. // // This prevents, for example, losing focus when clicking on swaybar. - // - // TODO: Replace this condition with something like - // !surface_accepts_keyboard_input if (surface && cont && cont->type != C_VIEW) { struct sway_container *new_ws = cont; if (new_ws && new_ws->type != C_WORKSPACE) {