From 351bac8b688ea0f3161e268a04192a6546f2703a Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 15 Aug 2024 16:00:15 +0200 Subject: [PATCH] Turn `repeat` into a single layouter (#4758) --- crates/typst/src/layout/repeat.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/typst/src/layout/repeat.rs b/crates/typst/src/layout/repeat.rs index 4a0911e48..30fc314da 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 { fn show(&self, _: &mut Engine, _: StyleChain) -> SourceResult { - 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 { - let pod = Regions::one(regions.size, Axes::new(false, false)); + region: Region, +) -> SourceResult { + 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) }