diff --git a/library/src/layout/flow.rs b/library/src/layout/flow.rs index cd713c681..627ea9886 100644 --- a/library/src/layout/flow.rs +++ b/library/src/layout/flow.rs @@ -6,7 +6,8 @@ use super::{ use crate::meta::{FootnoteElem, FootnoteEntry}; use crate::prelude::*; use crate::visualize::{ - CircleElem, EllipseElem, ImageElem, PathElem, PolygonElem, RectElem, SquareElem, + CircleElem, EllipseElem, ImageElem, LineElem, PathElem, PolygonElem, RectElem, + SquareElem, }; /// Arrange spacing, paragraphs and block-level elements into a flow. @@ -45,7 +46,8 @@ impl Layout for FlowElem { layouter.layout_spacing(vt, elem, styles)?; } else if let Some(elem) = child.to::() { layouter.layout_par(vt, elem, styles)?; - } else if child.is::() + } else if child.is::() + || child.is::() || child.is::() || child.is::() || child.is::() diff --git a/library/src/layout/mod.rs b/library/src/layout/mod.rs index 9b6ba2049..de7915251 100644 --- a/library/src/layout/mod.rs +++ b/library/src/layout/mod.rs @@ -58,7 +58,8 @@ use crate::prelude::*; use crate::shared::BehavedBuilder; use crate::text::{LinebreakElem, SmartQuoteElem, SpaceElem, TextElem}; use crate::visualize::{ - CircleElem, EllipseElem, ImageElem, PathElem, PolygonElem, RectElem, SquareElem, + CircleElem, EllipseElem, ImageElem, LineElem, PathElem, PolygonElem, RectElem, + SquareElem, }; /// Hook up all layout definitions. @@ -248,6 +249,7 @@ fn realize_block<'a>( styles: StyleChain<'a>, ) -> SourceResult<(Content, StyleChain<'a>)> { if content.can::() + && !content.is::() && !content.is::() && !content.is::() && !content.is::() diff --git a/tests/ref/bugs/line-align.png b/tests/ref/bugs/line-align.png new file mode 100644 index 000000000..1117ed6bf Binary files /dev/null and b/tests/ref/bugs/line-align.png differ diff --git a/tests/typ/bugs/line-align.typ b/tests/typ/bugs/line-align.typ new file mode 100644 index 000000000..0518eaaa9 --- /dev/null +++ b/tests/typ/bugs/line-align.typ @@ -0,0 +1,5 @@ +// Test right-aligning a line and a rectangle. + +--- +#align(right, line(length: 30%)) +#align(right, rect())