diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-02-12 13:23:40 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-02-12 13:23:40 +0100 |
| commit | 8cbc2ac4832d659255e6f509ef6db66c69bda918 (patch) | |
| tree | 8fe79859a5e041b37a442cd35bb6a567218bd909 | |
| parent | fea238921fb5066214617e9723d3a4be4cd75cfb (diff) | |
Fix place base
| -rw-r--r-- | library/src/layout/transform.rs | 2 | ||||
| -rw-r--r-- | tests/ref/bugs/place-base.png | bin | 0 -> 1369 bytes | |||
| -rw-r--r-- | tests/typ/bugs/place-base.typ | 7 |
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 Binary files differnew file mode 100644 index 00000000..5245d256 --- /dev/null +++ b/tests/ref/bugs/place-base.png 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]) |
