Set lock focus per-seat

This commit is contained in:
Erik Reider 2026-05-15 13:02:30 +02:00
parent bafbcdd139
commit c2ae62e21c
4 changed files with 43 additions and 33 deletions

View file

@ -99,6 +99,7 @@ struct sway_seat {
char *prev_workspace_name; // for workspace back_and_forth
struct wlr_layer_surface_v1 *focused_layer;
struct wlr_surface *focused_lock;
// If the exclusive layer is set, views cannot receive keyboard focus
bool has_exclusive_layer;

View file

@ -13,7 +13,6 @@ struct sway_transaction;
struct sway_session_lock {
struct wlr_session_lock_v1 *lock;
struct wlr_surface *focused;
bool abandoned;
struct wl_list outputs; // struct sway_session_lock_output
@ -182,7 +181,7 @@ void sway_session_lock_add_output(struct sway_session_lock *lock,
bool sway_session_lock_has_surface(struct sway_session_lock *lock,
struct wlr_surface *surface);
void sway_session_lock_focus_output(struct sway_session_lock *lock,
struct sway_output *output);
struct sway_seat* seat, struct sway_output *output);
void handle_xdg_shell_toplevel(struct wl_listener *listener, void *data);
#if WLR_HAS_XWAYLAND
void handle_xwayland_surface(struct wl_listener *listener, void *data);