Add support for wlr-layer-shell ON_DEMAND keyboard interactivity

This allows for layer shell surfaces to receive focus while the surface is explicitly focused, i.e allowing
text fields to receive keyboard input just like a regular surface.
This commit is contained in:
Erik Reider 2023-06-05 15:31:16 +02:00 committed by Kenny Levinsen
parent 7ab8cb2ee6
commit 913a7679cb
6 changed files with 80 additions and 13 deletions

View file

@ -104,8 +104,9 @@ struct sway_seat {
struct sway_workspace *workspace;
char *prev_workspace_name; // for workspace back_and_forth
// If the focused layer is set, views cannot receive keyboard focus
struct wlr_layer_surface_v1 *focused_layer;
// If the exclusive layer is set, views cannot receive keyboard focus
bool has_exclusive_layer;
// If exclusive_client is set, no other clients will receive input events
struct wl_client *exclusive_client;

View file

@ -55,6 +55,10 @@ struct sway_layer_subsurface {
};
struct sway_output;
struct wlr_layer_surface_v1 *toplevel_layer_surface_from_surface(
struct wlr_surface *surface);
void arrange_layers(struct sway_output *output);
struct sway_layer_surface *layer_from_wlr_layer_surface_v1(