summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-02-12 13:23:40 +0100
committerLaurenz <laurmaedje@gmail.com>2023-02-12 13:23:40 +0100
commit8cbc2ac4832d659255e6f509ef6db66c69bda918 (patch)
tree8fe79859a5e041b37a442cd35bb6a567218bd909
parentfea238921fb5066214617e9723d3a4be4cd75cfb (diff)
Fix place base
-rw-r--r--library/src/layout/transform.rs2
-rw-r--r--tests/ref/bugs/place-base.pngbin0 -> 1369 bytes
-rw-r--r--tests/typ/bugs/place-base.typ7
3 files changed, 8 insertions, 1 deletions
diff --git a/library/src/layout/transform.rs b/library/src/layout/transform.rs
index e3fd3250..25f74e01 100644
--- a/library/src/layout/transform.rs
+++ b/library/src/layout/transform.rs
@@ -78,7 +78,7 @@ impl Layout for MoveNode {
let mut fragment = self.body.layout(vt, styles, regions)?;
for frame in &mut fragment {
let delta = self.delta.resolve(styles);
- let delta = delta.zip(frame.size()).map(|(d, s)| d.relative_to(s));
+ let delta = delta.zip(regions.base).map(|(d, s)| d.relative_to(s));
frame.translate(delta.to_point());
}
Ok(fragment)
diff --git a/tests/ref/bugs/place-base.png b/tests/ref/bugs/place-base.png
new file mode 100644
index 00000000..5245d256
--- /dev/null
+++ b/tests/ref/bugs/place-base.png
Binary files differ
diff --git a/tests/typ/bugs/place-base.typ b/tests/typ/bugs/place-base.typ
new file mode 100644
index 00000000..4a0bd029
--- /dev/null
+++ b/tests/typ/bugs/place-base.typ
@@ -0,0 +1,7 @@
+// Test that placement is relative to container and not itself.
+
+---
+#set page(height: 80pt, margin: 0pt)
+#place(right, dx: -70%, dy: 20%, [First])
+#place(left, dx: 20%, dy: 60%, [Second])
+#place(center + horizon, dx: 25%, dy: 25%, [Third])