summaryrefslogtreecommitdiff
path: root/src/library/image.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-11-23 22:04:08 +0100
committerLaurenz <laurmaedje@gmail.com>2021-11-23 22:04:08 +0100
commit8a88f71cb11565c1a78bd57f02a8df17cb2bf7a0 (patch)
tree8802c1ff48e2be118e3872d25bd2f2c1f7a21b4a /src/library/image.rs
parentc77c5a0f0ae6560a03a85e847006c29de9c7ae62 (diff)
Transformations
Diffstat (limited to 'src/library/image.rs')
-rw-r--r--src/library/image.rs18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/library/image.rs b/src/library/image.rs
index a53eacc5..17822619 100644
--- a/src/library/image.rs
+++ b/src/library/image.rs
@@ -7,7 +7,8 @@ use crate::image::ImageId;
/// `image`: An image.
pub fn image(ctx: &mut EvalContext, args: &mut Args) -> TypResult<Value> {
let path = args.expect::<Spanned<EcoString>>("path to image file")?;
- let sizing = Spec::new(args.named("width")?, args.named("height")?);
+ let width = args.named("width")?;
+ let height = args.named("height")?;
let fit = args.named("fit")?.unwrap_or_default();
// Load the image.
@@ -20,7 +21,7 @@ pub fn image(ctx: &mut EvalContext, args: &mut Args) -> TypResult<Value> {
})?;
Ok(Value::Template(Template::from_inline(move |_| {
- ImageNode { id, fit }.pack().sized(sizing)
+ ImageNode { id, fit }.pack().sized(Spec::new(width, height))
})))
}
@@ -81,13 +82,12 @@ impl Layout for ImageNode {
// Create a clipping group if the image mode is `cover`.
if self.fit == ImageFit::Cover {
- let group = Group {
- frame: Rc::new(frame),
- clips: self.fit == ImageFit::Cover,
- };
-
- frame = Frame::new(canvas, canvas.h);
- frame.push(Point::zero(), Element::Group(group));
+ let mut wrapper = Frame::new(canvas, canvas.h);
+ wrapper.push(
+ Point::zero(),
+ Element::Group(Group::new(Rc::new(frame)).clips(true)),
+ );
+ frame = wrapper;
}
let mut cts = Constraints::new(regions.expand);