diff --git a/waybox/layer_shell.c b/waybox/layer_shell.c index 8a2fe49..0414156 100644 --- a/waybox/layer_shell.c +++ b/waybox/layer_shell.c @@ -173,9 +173,12 @@ static void handle_unmap(struct wl_listener *listener, void *data) { seat_set_focus_layer(seat, NULL); } - struct wb_toplevel *toplevel = wl_container_of(surface->server->toplevels.next, toplevel, link); - if (toplevel && toplevel->scene_tree && toplevel->scene_tree->node.enabled) { - focus_toplevel(toplevel); + if (!wl_list_empty(&surface->server->toplevels)) { + struct wb_toplevel *toplevel = + wl_container_of(surface->server->toplevels.next, toplevel, link); + if (toplevel && toplevel->scene_tree && toplevel->scene_tree->node.enabled) { + focus_toplevel(toplevel); + } } }