summaryrefslogtreecommitdiff
path: root/library/src/layout/transform.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-11-17 21:57:15 +0100
committerLaurenz <laurmaedje@gmail.com>2022-11-17 23:04:02 +0100
commitddb617390cf7150042726742749806eab6b3dd54 (patch)
treef102a8ad40e2127215c00c879c80e6432a3e26df /library/src/layout/transform.rs
parentcabd0908e230e451bd9f1394390f8c5deb17182e (diff)
Simplify layout_inline's signature
Diffstat (limited to 'library/src/layout/transform.rs')
-rw-r--r--library/src/layout/transform.rs35
1 files changed, 14 insertions, 21 deletions
diff --git a/library/src/layout/transform.rs b/library/src/layout/transform.rs
index 4e0b8ac2..c45aa165 100644
--- a/library/src/layout/transform.rs
+++ b/library/src/layout/transform.rs
@@ -30,16 +30,12 @@ impl LayoutInline for MoveNode {
world: Tracked<dyn World>,
regions: &Regions,
styles: StyleChain,
- ) -> SourceResult<Vec<Frame>> {
- let mut frames = self.child.layout_inline(world, regions, styles)?;
-
+ ) -> SourceResult<Frame> {
+ let mut frame = self.child.layout_inline(world, regions, styles)?;
let delta = self.delta.resolve(styles);
- for frame in &mut frames {
- let delta = delta.zip(frame.size()).map(|(d, s)| d.relative_to(s));
- frame.translate(delta.to_point());
- }
-
- Ok(frames)
+ let delta = delta.zip(frame.size()).map(|(d, s)| d.relative_to(s));
+ frame.translate(delta.to_point());
+ Ok(frame)
}
}
@@ -88,20 +84,17 @@ impl<const T: TransformKind> LayoutInline for TransformNode<T> {
world: Tracked<dyn World>,
regions: &Regions,
styles: StyleChain,
- ) -> SourceResult<Vec<Frame>> {
- let origin = styles.get(Self::ORIGIN).unwrap_or(Align::CENTER_HORIZON);
- let mut frames = self.child.layout_inline(world, regions, styles)?;
+ ) -> SourceResult<Frame> {
+ let mut frame = self.child.layout_inline(world, regions, styles)?;
- for frame in &mut frames {
- let Axes { x, y } = origin.zip(frame.size()).map(|(o, s)| o.position(s));
- let transform = Transform::translate(x, y)
- .pre_concat(self.transform)
- .pre_concat(Transform::translate(-x, -y));
-
- frame.transform(transform);
- }
+ let origin = styles.get(Self::ORIGIN).unwrap_or(Align::CENTER_HORIZON);
+ let Axes { x, y } = origin.zip(frame.size()).map(|(o, s)| o.position(s));
+ let transform = Transform::translate(x, y)
+ .pre_concat(self.transform)
+ .pre_concat(Transform::translate(-x, -y));
+ frame.transform(transform);
- Ok(frames)
+ Ok(frame)
}
}