From bc357224b8eec2dff0fca7887f3589745aecd8cb Mon Sep 17 00:00:00 2001 From: codegax <14095200+codegax@users.noreply.github.com> Date: Sat, 2 May 2026 14:00:00 -0600 Subject: [PATCH] tree/load_layout: bypass default_layout when appending workspace_add_tiling wraps each top-level container with container_split when config->default_layout is set, mutating restored layouts. Use workspace_insert_tiling_direct so the parsed subtree is attached as-is. --- sway/tree/load_layout.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sway/tree/load_layout.c b/sway/tree/load_layout.c index 8a9493823..69ec8bfe0 100644 --- a/sway/tree/load_layout.c +++ b/sway/tree/load_layout.c @@ -446,8 +446,11 @@ bool load_layout_from_file(struct sway_workspace *ws, const char *path, return false; } + // workspace_add_tiling would wrap each child with container_split when + // default_layout is set, which mutates the parsed tree. for (int i = 0; i < children->length; i++) { - workspace_add_tiling(ws, children->items[i]); + workspace_insert_tiling_direct(ws, children->items[i], + ws->tiling->length); } list_free(children);