diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-04-02 21:17:16 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-04-02 21:17:16 -0400 |
commit | 0bf3b88019b038f7465b5e333742baacfe0a9eed (patch) | |
tree | c6436df2cf49f6ca2a648d39392105590d5ee92e /sway/input | |
parent | 56078edd65d05c1db1aa5d6e72134499e907063d (diff) | |
download | sway-0bf3b88019b038f7465b5e333742baacfe0a9eed.tar.xz |
Give layer shells under the shell layer focus
Diffstat (limited to 'sway/input')
-rw-r--r-- | sway/input/cursor.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sway/input/cursor.c b/sway/input/cursor.c index 97b4473c..9229e92d 100644 --- 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) { |