diff options
Diffstat (limited to 'src/library')
| -rw-r--r-- | src/library/image.rs | 8 | ||||
| -rw-r--r-- | src/library/page.rs | 2 | ||||
| -rw-r--r-- | src/library/shapes.rs | 2 |
3 files changed, 5 insertions, 7 deletions
diff --git a/src/library/image.rs b/src/library/image.rs index a7388abb..0287eaf5 100644 --- a/src/library/image.rs +++ b/src/library/image.rs @@ -46,15 +46,14 @@ struct ImageNode { impl Layout for ImageNode { fn layout(&self, _: &mut LayoutContext, areas: &Areas) -> Vec<Frame> { - let Areas { current, full, .. } = areas; + let Areas { current, base, .. } = areas; + let width = self.width.map(|w| w.resolve(base.width)); + let height = self.height.map(|w| w.resolve(base.height)); let pixel_width = self.dimensions.0 as f64; let pixel_height = self.dimensions.1 as f64; let pixel_ratio = pixel_width / pixel_height; - let width = self.width.map(|w| w.resolve(full.width)); - let height = self.height.map(|w| w.resolve(full.height)); - let size = match (width, height) { (Some(width), Some(height)) => Size::new(width, height), (Some(width), None) => Size::new(width, width / pixel_ratio), @@ -75,7 +74,6 @@ impl Layout for ImageNode { let mut frame = Frame::new(size, size.height); frame.push(Point::ZERO, Element::Image(self.id, size)); - vec![frame] } } diff --git a/src/library/page.rs b/src/library/page.rs index 7b8557be..1694b7d4 100644 --- a/src/library/page.rs +++ b/src/library/page.rs @@ -59,7 +59,7 @@ pub fn page(ctx: &mut EvalContext, args: &mut FuncArgs) -> Value { } if let Some(margins) = margins { - ctx.state.page.margins = Sides::uniform(Some(margins)); + ctx.state.page.margins = Sides::splat(Some(margins)); } if let Some(left) = left { diff --git a/src/library/shapes.rs b/src/library/shapes.rs index c87a0ac3..d6cdba8e 100644 --- a/src/library/shapes.rs +++ b/src/library/shapes.rs @@ -142,7 +142,7 @@ fn ellipse_impl( width, height, child: PadNode { - padding: Sides::uniform(Relative::new(PAD).into()), + padding: Sides::splat(Relative::new(PAD).into()), child: stack.into(), } .into(), |
