diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-12-28 00:29:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-28 00:29:15 +0100 |
| commit | 9624ad635bd8adb0e421c37c63c7310ecc71a708 (patch) | |
| tree | 0062b38db54c1fd785eedecbd9b77a12800bc340 /src/eval/node.rs | |
| parent | f6c7a8292dc1ab0560408fca9d74505e9d7cf13a (diff) | |
| parent | 7f7e14d95f7240727e0163451190ff63b230e393 (diff) | |
Merge pull request #52 from typst/basicc-cols
Introduce equal-width columns
Diffstat (limited to 'src/eval/node.rs')
| -rw-r--r-- | src/eval/node.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/eval/node.rs b/src/eval/node.rs index 34a4f275..43cb906b 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 @@ -344,8 +354,8 @@ 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); + for local in children.iter_mut().filter_map(FlowChild::styles_mut) { + local.erase(&styles); } let flow = FlowNode(children).pack(); |
