diff --git a/sway/input/seatop_default.c b/sway/input/seatop_default.c index 286bbeba5..5eb3d8e8c 100644 --- a/sway/input/seatop_default.c +++ b/sway/input/seatop_default.c @@ -54,6 +54,9 @@ static bool edge_is_external(struct sway_container *cont, enum wlr_edges edge) { while (cont) { if (container_parent_layout(cont) == layout) { list_t *siblings = container_get_siblings(cont); + if (!siblings) { + return false; + } int index = list_find(siblings, cont); if (index > 0 && (edge == WLR_EDGE_LEFT || edge == WLR_EDGE_TOP)) { return false; diff --git a/sway/tree/container.c b/sway/tree/container.c index 244b156d5..3a53854dd 100644 --- a/sway/tree/container.c +++ b/sway/tree/container.c @@ -1244,6 +1244,9 @@ list_t *container_get_siblings(struct sway_container *container) { if (container_is_scratchpad_hidden(container)) { return NULL; } + if (!container->pending.workspace) { + return NULL; + } if (list_find(container->pending.workspace->tiling, container) != -1) { return container->pending.workspace->tiling; }