diff options
Diffstat (limited to 'src/library/text')
| -rw-r--r-- | src/library/text/par.rs | 9 | ||||
| -rw-r--r-- | src/library/text/raw.rs | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/library/text/par.rs b/src/library/text/par.rs index 695d8066..41246b00 100644 --- a/src/library/text/par.rs +++ b/src/library/text/par.rs @@ -551,11 +551,14 @@ fn prepare<'a>( } else { let size = Size::new(regions.first.x, regions.base.y); let pod = Regions::one(size, regions.base, Spec::splat(false)); + let mut frame = node.layout(ctx, &pod, styles)?.remove(0); let shift = styles.get(TextNode::BASELINE); - if !shift.is_zero() { - Arc::make_mut(&mut frame).translate(Point::with_y(shift)); + if !shift.is_zero() || frame.role().map_or(true, Role::is_weak) { + let frame = Arc::make_mut(&mut frame); + frame.translate(Point::with_y(shift)); + frame.apply_role(Role::GenericInline); } items.push(Item::Frame(frame)); @@ -1063,6 +1066,7 @@ fn stack( let mut finished = vec![]; let mut first = true; let mut output = Frame::new(Size::with_x(width)); + output.apply_role(Role::Paragraph); // Stack the lines into one frame per region. for line in lines { @@ -1072,6 +1076,7 @@ fn stack( while !regions.first.y.fits(height) && !regions.in_last() { finished.push(Arc::new(output)); output = Frame::new(Size::with_x(width)); + output.apply_role(Role::Paragraph); regions.next(); first = true; } diff --git a/src/library/text/raw.rs b/src/library/text/raw.rs index a24d2170..31db811a 100644 --- a/src/library/text/raw.rs +++ b/src/library/text/raw.rs @@ -123,7 +123,7 @@ impl Show for RawNode { realized = realized.spaced(styles.get(Self::ABOVE), styles.get(Self::BELOW)); } - Ok(realized.styled_with_map(map)) + Ok(realized.styled_with_map(map).role(Role::Code)) } } |
