Fix square base

This commit is contained in:
Laurenz 2023-02-12 16:38:14 +01:00
parent 6260878245
commit ebbee6274c
5 changed files with 9 additions and 4 deletions

View File

@ -321,7 +321,7 @@ impl<'a, 'v> GridLayouter<'a, 'v> {
let rcols = vec![Abs::zero(); cols.len()]; let rcols = vec![Abs::zero(); cols.len()];
let lrows = vec![]; let lrows = vec![];
// We use the regions for auto row measurement. Since at that moment, // We use these regions for auto row measurement. Since at that moment,
// columns are already sized, we can enable horizontal expansion. // columns are already sized, we can enable horizontal expansion.
let mut regions = regions.clone(); let mut regions = regions.clone();
regions.expand = Axes::new(true, false); regions.expand = Axes::new(true, false);

View File

@ -556,7 +556,7 @@ fn layout(
// Pad the child. // Pad the child.
let child = child.clone().padded(inset.map(|side| side.map(Length::from))); let child = child.clone().padded(inset.map(|side| side.map(Length::from)));
let mut pod = Regions::one(regions.first, regions.base, regions.expand); let pod = Regions::one(regions.first, regions.base, regions.expand);
frame = child.layout(vt, styles, pod)?.into_frame(); frame = child.layout(vt, styles, pod)?.into_frame();
// Relayout with full expansion into square region to make sure // Relayout with full expansion into square region to make sure
@ -571,8 +571,8 @@ fn layout(
desired.min(regions.first.x).min(regions.first.y) desired.min(regions.first.x).min(regions.first.y)
}; };
pod.first = Size::splat(length); let size = Size::splat(length);
pod.expand = Axes::splat(true); let pod = Regions::one(size, size, Axes::splat(true));
frame = child.layout(vt, styles, pod)?.into_frame(); frame = child.layout(vt, styles, pod)?.into_frame();
} }
} else { } else {

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,5 @@
// Test that square sets correct base for its content.
---
#set page(height: 80pt)
#square(width: 40%, rect(width: 60%, height: 80%))