From f9b9be16f96d01ffb0587f65c8c32da9e9e4b3f5 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 6 Apr 2023 12:25:55 +0200 Subject: [PATCH] Fix box and block sizing --- library/src/layout/container.rs | 14 ++++++++++++-- library/src/layout/flow.rs | 6 +++++- library/src/layout/mod.rs | 4 ++++ library/src/visualize/shape.rs | 9 ++++++--- tests/ref/compiler/construct.png | Bin 6327 -> 6320 bytes tests/ref/layout/container.png | Bin 8541 -> 20514 bytes tests/typ/layout/container.typ | 10 ++++++++++ 7 files changed, 37 insertions(+), 6 deletions(-) diff --git a/library/src/layout/container.rs b/library/src/layout/container.rs index 166d6c09c..ef5fbe5dd 100644 --- a/library/src/layout/container.rs +++ b/library/src/layout/container.rs @@ -132,6 +132,9 @@ impl Layout for BoxElem { let pod = Regions::one(size, expand); let mut frame = body.layout(vt, styles, pod)?.into_frame(); + // Enforce correct size. + *frame.size_mut() = expand.select(size, frame.size()); + // Apply baseline shift. let shift = self.baseline(styles).relative_to(frame.height()); if !shift.is_zero() { @@ -377,10 +380,17 @@ impl Layout for BlockElem { pod.last = None; } - body.layout(vt, styles, pod)?.into_frames() + let mut frames = body.layout(vt, styles, pod)?.into_frames(); + for (frame, &height) in frames.iter_mut().zip(&heights) { + *frame.size_mut() = + expand.select(Size::new(size.x, height), frame.size()); + } + frames } else { let pod = Regions::one(size, expand); - body.layout(vt, styles, pod)?.into_frames() + let mut frames = body.layout(vt, styles, pod)?.into_frames(); + *frames[0].size_mut() = expand.select(size, frames[0].size()); + frames }; // Clip the contents diff --git a/library/src/layout/flow.rs b/library/src/layout/flow.rs index cd7b1f606..b45c39c22 100644 --- a/library/src/layout/flow.rs +++ b/library/src/layout/flow.rs @@ -1,6 +1,8 @@ use super::{AlignElem, BlockElem, ColbreakElem, ParElem, PlaceElem, Spacing, VElem}; use crate::prelude::*; -use crate::visualize::{CircleElem, EllipseElem, ImageElem, RectElem, SquareElem}; +use crate::visualize::{ + CircleElem, EllipseElem, ImageElem, PathElem, PolygonElem, RectElem, SquareElem, +}; /// Arrange spacing, paragraphs and block-level elements into a flow. /// @@ -42,6 +44,8 @@ impl Layout for FlowElem { || child.is::() || child.is::() || child.is::() + || child.is::() + || child.is::() { let layoutable = child.with::().unwrap(); layouter.layout_single(vt, layoutable, styles)?; diff --git a/library/src/layout/mod.rs b/library/src/layout/mod.rs index d12ce158e..0fed1a34e 100644 --- a/library/src/layout/mod.rs +++ b/library/src/layout/mod.rs @@ -57,6 +57,8 @@ use crate::meta::DocumentElem; use crate::prelude::*; use crate::shared::BehavedBuilder; use crate::text::{LinebreakElem, SmartQuoteElem, SpaceElem, TextElem}; +use crate::visualize::PathElem; +use crate::visualize::PolygonElem; use crate::visualize::{CircleElem, EllipseElem, ImageElem, RectElem, SquareElem}; /// Root-level layout. @@ -192,6 +194,8 @@ fn realize_block<'a>( && !content.is::() && !content.is::() && !content.is::() + && !content.is::() + && !content.is::() && !applicable(content, styles) { return Ok((content.clone(), styles)); diff --git a/library/src/visualize/shape.rs b/library/src/visualize/shape.rs index ba7f052ff..c899ad6d9 100644 --- a/library/src/visualize/shape.rs +++ b/library/src/visualize/shape.rs @@ -483,7 +483,7 @@ fn layout( let mut frame; if let Some(child) = body { - let region = resolved.unwrap_or(regions.base()); + let mut region = resolved.unwrap_or(regions.base()); if kind.is_round() { inset = inset.map(|side| side + Ratio::new(0.5 - SQRT_2 / 4.0)); } @@ -498,10 +498,13 @@ fn layout( // the result is really a square or circle. if kind.is_quadratic() { let length = frame.size().max_by_side().min(region.min_by_side()); - let size = Size::splat(length); - let pod = Regions::one(size, Axes::splat(true)); + region = Size::splat(length); + let pod = Regions::one(region, Axes::splat(true)); frame = child.layout(vt, styles, pod)?.into_frame(); } + + // Enforce correct size. + *frame.size_mut() = expand.select(region, frame.size()); } else { // The default size that a shape takes on if it has no child and // enough space. diff --git a/tests/ref/compiler/construct.png b/tests/ref/compiler/construct.png index eba9aa9fdb7321eaf8e71846741d91b5ebda9d59..3dac041fd00cf93f54477368fb47688e2ff6362f 100644 GIT binary patch literal 6320 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 V9%)Sv0se^~Q&rYf%2R*^{2$#GNfQ77 literal 6327 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 Q4+#S0`>OIq_spOF4d8@g=>Px# diff --git a/tests/ref/layout/container.png b/tests/ref/layout/container.png index ce298d29a141d0b979be9714df8bacab4c9a49d3..eff06f1a70ebd8fb2430e22bbdc8906e2116cd62 100644 GIT binary patch literal 20514 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 I_1umB2P6uCxc~qF literal 8541 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