diff --git a/sway/input/cursor.c b/sway/input/cursor.c index bbd16717ff..624c522b6b 100644 --- a/sway/input/cursor.c +++ b/sway/input/cursor.c @@ -63,6 +63,11 @@ struct sway_node *node_at_coords( } } + if (server.session_lock.lock) { + *surface = server.session_lock.lock->focused; + return NULL; + } + if (scene_node) { // determine what wlr_surface we clicked on if (scene_node->type == WLR_SCENE_NODE_BUFFER) { diff --git a/sway/lock.c b/sway/lock.c index 43f3133088..10d055aa0a 100644 --- a/sway/lock.c +++ b/sway/lock.c @@ -234,6 +234,7 @@ static void handle_unlock(struct wl_listener *listener, void *data) { struct sway_output *output = root->outputs->items[i]; arrange_layers(output); } + cursor_rebase_all(); } static void handle_abandon(struct wl_listener *listener, void *data) {