diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-06-08 19:31:07 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-08 19:31:07 +0200 |
| commit | cd5a14bc240b21f8f538ff7fc1d116d23611d6c5 (patch) | |
| tree | f4b8a7e8a941f8653d5061d2f7acc0bfd8d92b13 /src/model/layout.rs | |
| parent | b905048d4bb497252028df6d21b525fefb6b64c3 (diff) | |
| parent | 72d3f3fffabe6872eb7839585bea925b89aac6a4 (diff) | |
Merge pull request #75 from typst/semantics
Frame Role and PDF outline
Diffstat (limited to 'src/model/layout.rs')
| -rw-r--r-- | src/model/layout.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/model/layout.rs b/src/model/layout.rs index b0247258..b4151c04 100644 --- a/src/model/layout.rs +++ b/src/model/layout.rs @@ -232,7 +232,16 @@ impl Layout for LayoutNode { let at = ctx.pins.cursor(); let entry = StyleEntry::Barrier(Barrier::new(node.id())); - let result = node.0.layout(ctx, regions, entry.chain(&styles)); + let mut result = node.0.layout(ctx, regions, entry.chain(&styles)); + + if let Some(role) = styles.role() { + result = result.map(|mut frames| { + for frame in frames.iter_mut() { + Arc::make_mut(frame).apply_role(role); + } + frames + }); + } let fresh = ctx.pins.from(at); let dirty = ctx.pins.dirty.get(); |
