From b22ce6f8b84e0a75d162feb6f3699e26f86f2453 Mon Sep 17 00:00:00 2001 From: Martin Haug Date: Sat, 18 Dec 2021 18:04:26 +0100 Subject: Introduce equal-width columns --- src/eval/node.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/eval') diff --git a/src/eval/node.rs b/src/eval/node.rs index 34a4f275..d5b67adb 100644 --- a/src/eval/node.rs +++ b/src/eval/node.rs @@ -32,6 +32,8 @@ pub enum Node { Linebreak, /// A paragraph break. Parbreak, + /// A column break. + Colbreak, /// A page break. Pagebreak, /// Plain text. @@ -212,6 +214,14 @@ impl Packer { // paragraph. self.parbreak(Some(styles)); } + Node::Colbreak => { + // Explicit column breaks end the current paragraph and then + // discards the paragraph break. + self.parbreak(None); + self.make_flow_compatible(&styles); + self.flow.children.push(FlowChild::Skip); + self.flow.last.hard(); + } Node::Pagebreak => { // We must set the flow styles after the page break such that an // empty page created by two page breaks in a row has styles at @@ -345,7 +355,7 @@ impl Packer { // Take the flow and erase any styles that will be inherited anyway. let Builder { mut children, styles, .. } = mem::take(&mut self.flow); for child in &mut children { - child.styles_mut().erase(&styles); + child.styles_mut().map(|s| s.erase(&styles)); } let flow = FlowNode(children).pack(); -- cgit v1.2.3