diff options
| author | Laurenz <laurmaedje@gmail.com> | 2024-08-15 16:00:15 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-15 14:00:15 +0000 |
| commit | 351bac8b688ea0f3161e268a04192a6546f2703a (patch) | |
| tree | b3a961eddbd1685017c27a8b11c33b13ad0374ac | |
| parent | d84a7e423b53e9b5740720270b132da60c8a3fea (diff) | |
Turn `repeat` into a single layouter (#4758)
| -rw-r--r-- | crates/typst/src/layout/repeat.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/crates/typst/src/layout/repeat.rs b/crates/typst/src/layout/repeat.rs index 4a0911e4..30fc314d 100644 --- a/crates/typst/src/layout/repeat.rs +++ b/crates/typst/src/layout/repeat.rs @@ -5,7 +5,7 @@ use crate::foundations::{ }; use crate::introspection::Locator; use crate::layout::{ - Abs, AlignElem, Axes, BlockElem, Fragment, Frame, Point, Regions, Size, + Abs, AlignElem, Axes, BlockElem, Frame, Point, Region, Regions, Size, }; use crate::utils::Numeric; @@ -39,7 +39,7 @@ pub struct RepeatElem { impl Show for Packed<RepeatElem> { fn show(&self, _: &mut Engine, _: StyleChain) -> SourceResult<Content> { - Ok(BlockElem::multi_layouter(self.clone(), layout_repeat) + Ok(BlockElem::single_layouter(self.clone(), layout_repeat) .pack() .spanned(self.span())) } @@ -52,20 +52,20 @@ fn layout_repeat( engine: &mut Engine, locator: Locator, styles: StyleChain, - regions: Regions, -) -> SourceResult<Fragment> { - let pod = Regions::one(regions.size, Axes::new(false, false)); + region: Region, +) -> SourceResult<Frame> { + let pod = Regions::one(region.size, Axes::new(false, false)); let piece = elem.body().layout(engine, locator, styles, pod)?.into_frame(); let align = AlignElem::alignment_in(styles).resolve(styles); - let fill = regions.size.x; + let fill = region.size.x; let width = piece.width(); let count = (fill / width).floor(); let remaining = fill % width; let apart = remaining / (count - 1.0); - let size = Size::new(regions.size.x, piece.height()); + let size = Size::new(region.size.x, piece.height()); if !size.is_finite() { bail!(elem.span(), "repeat with no size restrictions"); @@ -88,5 +88,5 @@ fn layout_repeat( } } - Ok(Fragment::frame(frame)) + Ok(frame) } |
