Skip to content

Fix:skip maximized fullscreen windows in bsp reconstruct #89 - #93

Merged
oliwebd merged 3 commits into
mainfrom
fix/skip-maximized-fullscreen-windows-in-bsp-reconstruct
Sep 10, 2026
Merged

Fix:skip maximized fullscreen windows in bsp reconstruct #89#93
oliwebd merged 3 commits into
mainfrom
fix/skip-maximized-fullscreen-windows-in-bsp-reconstruct

Conversation

@oliwebd

@oliwebd oliwebd commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Their rect spans the full work area, overlaps every sibling, and breaks
the BSP split-search in reconstruct.ts, which then force-retiles the
whole [monitor, workspace] group (log: "no clean split found... falling
back to sequential tiling"). on_maximize() already detaches these
windows and reflows siblings to fill the gap, re-attaching on
unmaximize: skipping them here just lets reconstruction rely on that
existing behavior instead of fighting it.

disable() destroys the tiling forest and every ShellWindow; enable()
rebuilds the tree from live window rects and workspace ids. Two ways
that's lossy across a lock/suspend cycle (#89):

- Mutter can misreport a window's workspace after resume when a
  fullscreen window was active, so the rebuild bakes the wrong
  workspace into the tree.
- A maximized window's live rect is full-screen, which distorts the
  BSP reconstruction for other windows on the same workspace and
  drops the maximize when the tree is retiled.

Snapshot each tiled window's workspace and maximized state (keyed by
stable_sequence, which survives the forest/entity teardown) on
disable(), unmaximize before teardown so reconstruction reads the
real tiled rect, then on enable() restore the workspace before
auto_tile_on() runs and re-maximize once the rebuilt tree settles.
Their rect spans the full work area, overlaps every sibling, and breaks
the BSP split-search in reconstruct.ts, which then force-retiles the
whole [monitor, workspace] group (log: "no clean split found... falling
back to sequential tiling"). on_maximize() already detaches these
windows and reflows siblings to fill the gap, re-attaching on
unmaximize — skipping them here just lets reconstruction rely on that
existing behavior instead of fighting it.
@oliwebd
oliwebd merged commit 2482935 into main Sep 10, 2026
7 checks passed
@oliwebd
oliwebd deleted the fix/skip-maximized-fullscreen-windows-in-bsp-reconstruct branch September 12, 2026 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant