Keep valid layout guarantees when a redraw widens their range

This commit is contained in:
iris-ai committed 2026-09-17 17:24:53 -04:00
1 parent f860f716e6
commit 0e107f0e89
3 files changed
+46 -1

No files matched your search

+22
View File
@@ -1105,3 +1105,25 @@ fn changed_drawing_dependencies_reach_ancestors_without_a_size_change() {
assert_eq!(draws.get(), settled + 1);
assert_corners!(h, leaf, (0, 0), (800, 200));
}
#[test]
fn widening_and_restoring_a_contract_does_not_invalidate_its_reader() {
let mut h = Harness::new((400, 200));
let (leaf, leaf_draws) = counted(&mut h, Size::LEFTOVER, true);
let draws = Rc::new(Cell::new(0));
let child = leaf.add_strong(&mut h.rsc);
h.set_root(Unmeasured {
child,
draws: draws.clone(),
});
let settled = draws.get();
for reads_box in [false, true, false, true] {
h.rsc[leaf].reads_box = reads_box;
h.frame();
assert_eq!(draws.get(), settled);
}
let settled = leaf_draws.get();
h.resize((800, 200));
h.frame();
assert_eq!(leaf_draws.get(), settled + 1);
}