Document the causes and correction of layout invalidation cascades
This commit is contained in:
1 parent
32151f7f9f
commit
ccc42f34f8
2 files changed
+148
-192
No files matched your search
+13
-8
@@ -879,14 +879,19 @@ prototype has significant container-update costs and is not yet adopted into
|
||||
the pinned framework. A container's length query can evaluate the offered extent
|
||||
without first placing the child's reported size; the parent's subsequent draw
|
||||
assigns the final slot using the same `Widget::draw` body. A parent-selected slot
|
||||
still honors a fixed child's alignment within that slot. Child frames can also
|
||||
retain an extent-relative region through `widget_within(DrawRegion::Extent)`;
|
||||
padding and stacks use this instead of baking the current placement into child
|
||||
coordinates. Pixel insets carry numeric validity through the extent. General
|
||||
fractional endpoints and fractional reports retain conservative placement
|
||||
dependencies; fixed-point composition must not be reassociated to remove them.
|
||||
Retained movement preserves the slot chosen from measurement, even if the final
|
||||
draw reports another size.
|
||||
still honors a fixed child's alignment within that slot. Answer dependencies
|
||||
are collected only from child sizes actually read; drawing dependencies
|
||||
include all painted children. Root resize and local propagation check both
|
||||
contracts. An unchanged answer with a wider validity range retains its old
|
||||
contract: the parent's guarantee is still valid, and narrowing back must not
|
||||
trigger layout. The same rule applies to retained drawing validity. A changed
|
||||
declared size defers to its direct parent, then ordinary bottom-up propagation
|
||||
stops when both contracts remain unchanged. Blanket ancestor invalidation is
|
||||
unnecessary. The extent-relative child-frame API trial was removed: the major
|
||||
size/resize cost came from conflating these dependencies, not from Pad and
|
||||
Stack's conservative raw-placement reads. Cold layout and widespread content
|
||||
changes still perform excess provisional work; that residual has not been
|
||||
established as necessary for correctness.
|
||||
|
||||
**A `Span` leaves its children in the offered orthogonal region unless
|
||||
explicitly compacted** (2026-09-12). It still reports the widest orthogonal
|
||||
|
||||
Reference in new issue
Block a user