Say region and placement, not extent

The split box was named `region` and `placement` on 2026-09-17; `frame`
came back as a length and survived, `extent` did not. It stayed as the
name for both halves, distinguished only by prose: `draw_at` bound the
caller's `part` to a parameter called `extent`, and `ActiveData` held two
`UiRegion`s that `draw_at` wrote `part: extent` from.

The box a parent asks a widget in is now the region, and where its
drawing ends up is its placement. `Painter`'s four holds accumulators
become the one `LayoutHolds` they were assembled into, which also drops
the name mapping between them.

The cold dump of 400 depth-5 trees is byte-identical across the change.
This commit is contained in:
iris-ai committed 2026-09-19 14:49:56 -04:00
1 parent 84dad211f5
commit 5642f2010a
13 files changed
+212 -227

No files matched your search

+7 -7
View File
@@ -10,7 +10,7 @@ use crate::{
pub struct ActiveData {
pub id: WidgetId,
/// Where its drawing goes, in its region node's coordinates.
pub extent: UiRegion,
pub placement: UiRegion,
/// What a fraction declared or reported under this widget is a fraction
/// of, as a length of the window.
pub frame: UiVec2,
@@ -29,7 +29,7 @@ pub struct ActiveData {
/// The box it was asked in, in the parent's region-node coordinates: the
/// box its drawing was made in and the one its contract is about. Its
/// drawing is placed elsewhere by re-expression, never by asking again.
pub part: UiRegion,
pub region: UiRegion,
/// The measured answer and its dependencies. A hint-only dependency or
/// a widget first encountered during placement has no measurement yet.
pub answer: Option<(Size, LayoutHolds)>,
@@ -40,8 +40,8 @@ pub struct ActiveData {
pub re_asked: bool,
/// What the widget reported, in window-unit lengths.
pub size: Size,
/// The window and extent reads that this drawing holds for, and the
/// frame and box it pinned.
/// The window and region reads that this drawing holds for, and the
/// frame and region it pinned.
pub holds: LayoutHolds,
pub drawn: bool,
pub parent: Option<WidgetId>,
@@ -51,7 +51,7 @@ pub struct ActiveData {
pub depth: usize,
pub textures: Vec<TextureHandle>,
/// Its primitives, each keeping the box it was written in -- in this
/// widget's extent coordinates, which is what a move recomposes from.
/// widget's placement coordinates, which is what a move recomposes from.
pub primitives: Vec<RetainedPrimitive>,
/// An owned mask holds one reference independently of its primitives.
pub mask_region: Option<UiRegion>,
@@ -68,8 +68,8 @@ pub struct ActiveData {
/// Its alignment when it was last drawn, which a change to the property
/// is found against.
pub own_align: RegionAlign,
/// The movable region whose coordinates `extent` uses when this widget
/// does not own a region node.
/// The movable region whose coordinates its placement is in when this
/// widget does not own a region node.
pub parent_move: MoveIdx,
/// The mask its drawing is clipped to: one it set itself, or the one it
/// inherited from whoever drew it.