aboutsummaryrefslogtreecommitdiffstats
path: root/sway/input/seat.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/input/seat.c')
-rw-r--r--sway/input/seat.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c
index 0bd33581..28210bb5 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -1080,9 +1080,20 @@ void seat_configure_xcursor(struct sway_seat *seat) {
1080 1080
1081bool seat_is_input_allowed(struct sway_seat *seat, 1081bool seat_is_input_allowed(struct sway_seat *seat,
1082 struct wlr_surface *surface) { 1082 struct wlr_surface *surface) {
1083 if (server.session_lock.locked) {
1084 if (server.session_lock.lock == NULL) {
1085 return false;
1086 }
1087 struct wlr_session_lock_surface_v1 *lock_surf;
1088 wl_list_for_each(lock_surf, &server.session_lock.lock->surfaces, link) {
1089 if (lock_surf->surface == surface) {
1090 return true;
1091 }
1092 }
1093 return false;
1094 }
1083 struct wl_client *client = wl_resource_get_client(surface->resource); 1095 struct wl_client *client = wl_resource_get_client(surface->resource);
1084 return seat->exclusive_client == client || 1096 return seat->exclusive_client == client || seat->exclusive_client == NULL;
1085 (seat->exclusive_client == NULL && !server.session_lock.locked);
1086} 1097}
1087 1098
1088static void send_unfocus(struct sway_container *con, void *data) { 1099static void send_unfocus(struct sway_container *con, void *data) {