Keep valid layout guarantees when a redraw widens their range
This commit is contained in:
1 parent
f860f716e6
commit
0e107f0e89
3 files changed
+46
-1
No files matched your search
@@ -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);
|
||||
}
|
||||
Reference in new issue
Block a user