Primitives · a raise keeps its state under its owner's id

A raise inside another was namespaced by its place in the layer's
queue, so one that came before it moved its id path and rebuilt its
keyed state and focus: an open date popup would lose its month when a
tip appeared. raise now takes its owner's id and draws under it, and
float and float_height pass the owner's id on from every call site.
A test holds a focused box in a raise while another comes before it.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-27 02:23:05 -04:00
1 parent 341420d1e4
commit 51ade29032
25 files changed
+188 -40

No files matched your search

+8 -1
View File
@@ -236,7 +236,14 @@ impl RenderOnce for NavigationMenu {
.on_mouse_down_out(move |_, _, cx| show(&close, None, cx))
.children(links);
let rows = entries[entry].1.len().div_ceil(2) * 2;
float(state.read(cx).anchors[entry], rows, content, window, cx)
float(
(self.id.clone(), format!("menu-{entry}")),
state.read(cx).anchors[entry],
rows,
content,
window,
cx,
)
});
let (keys, key_entries, enter) = (state.clone(), entries.clone(), pick);
div()