Commit e44abf08e08d
tarball3 files changed+3-3
@@ -12,5 +12,5 @@ Issues found while building, with the milestone that owns them.
1212
1313
- wlr-foreign-toplevel minimize requests are ignored, since tags have no minimized state.1414
- X11 windows do not raise in X stacking order on focus, which only matters for overlapping floating X windows.15
-- Dialogs from xdg toplevels with a parent tile like any window. X11 dialogs, transients and fixed-size windows float.15
+- Dialogs from xdg toplevels with a parent float, as do X11 dialogs, transients and fixed-size windows. Portal file choosers arrive with no parent and still tile.1616
- Some programs open an X connection just to probe, vkcube among them, which starts Xwayland lazily even though they draw through Wayland.@@ -22,7 +22,7 @@ The hard logic lives in crates with no smithay dependency, so it compiles fast a
2222
2323
## Backends2424
25
-- **Nested** runs inside another Wayland compositor and is supported for the life of the project, not just during early development. It renders into dmabufs and attaches them to a host `wl_surface` through linux-dmabuf, so nested and DRM share one render-to-dmabuf path and both get presentation feedback. smithay's winit backend is EGL/GLES-only, so it is not used.25
+- **Nested** runs inside another Wayland compositor and is supported for the life of the project, not just during early development. It renders into dmabufs and attaches them to a host `wl_surface` through linux-dmabuf, so nested and DRM share one render-to-dmabuf path. Nested paces from the host's wp_presentation feedback, DRM from page-flip events, and clients get no wp_presentation from either yet. smithay's winit backend is EGL/GLES-only, so it is not used.2626
- **DRM** on bare metal from M5.2727
- **Headless** for `testkit`.2828
@@ -116,7 +116,7 @@ Gaps, by value:
116116
117117
## Proposed order118118
119
-Done as of 2026-10-17: 1 (State split, see state-split.md), 2 (frame path in frame.rs, pruning once per dispatch), 3 (snapshots gated on Dirty::snapshot, identity cached per window). CLEAR and close-window from item 4 went in along the way. 4 (dedup) and 5 (file moves) are done too. From 5, `now_ns`, `gaps` and `xkb_config` stay in state.rs. The ghost texture moved to `Wm::last_frames`. 6 and 7 are done as well. Two parts were left out on purpose. Snapshot diffing stays untested as a pure function, because its bugs so far were in the publishers and scripts/smoke.nu catches those end to end. The comment pass removed nothing, since density is under 10% outside module docs and existing comments are vetted.119
+Done as of 2026-10-17: 1 (State split, see state-split.md, though the routing of commit by surface role proposed under section 1 never landed), 2 (frame path in frame.rs, pruning once per dispatch), 3 (snapshots gated on Dirty::snapshot, identity cached per window). CLEAR and close-window from item 4 went in along the way. 4 (dedup) and 5 (file moves) are done too. From 5, `now_ns`, `gaps` and `xkb_config` stay in state.rs. The ghost texture moved to `Wm::last_frames`. 6 and 7 are done as well. Two parts were left out on purpose. Snapshot diffing stays untested as a pure function, because its bugs so far were in the publishers and scripts/smoke.nu catches those end to end. The comment pass removed nothing, since density is under 10% outside module docs and existing comments are vetted.120120
121121
122122
1. **Split `State`** into protocol globals, the backend enum, the window model with per-window records, subsystems and input. This unlocks most of the rest.