aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_2020/flow/inline.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout_2020/flow/inline.rs')
-rw-r--r--components/layout_2020/flow/inline.rs59
1 files changed, 27 insertions, 32 deletions
diff --git a/components/layout_2020/flow/inline.rs b/components/layout_2020/flow/inline.rs
index cadf5840e32..047cfc7087d 100644
--- a/components/layout_2020/flow/inline.rs
+++ b/components/layout_2020/flow/inline.rs
@@ -1638,10 +1638,9 @@ impl InlineFormattingContext {
// It's unfortunate that it isn't possible to get this during IFC text processing, but in
// that situation the style of the containing block is unknown.
- let default_font_metrics = layout_context.with_font_context(|font_context| {
- get_font_for_first_font_for_style(style, font_context)
- .map(|font| font.borrow().metrics.clone())
- });
+ let default_font_metrics =
+ get_font_for_first_font_for_style(style, &layout_context.font_context)
+ .map(|font| font.metrics.clone());
let style_text = containing_block.style.get_inherited_text();
let mut ifc = InlineFormattingContextState {
@@ -1768,34 +1767,30 @@ impl InlineFormattingContext {
// For the purposes of `text-transform: capitalize` the start of the IFC is a word boundary.
let mut on_word_boundary = true;
- layout_context.with_font_context(|font_context| {
- let mut linebreaker = None;
- self.foreach(|iter_item| match iter_item {
- InlineFormattingContextIterItem::Item(InlineLevelBox::TextRun(
- ref mut text_run,
- )) => {
- text_run.break_and_shape(
- font_context,
- &mut linebreaker,
- &mut ifc_fonts,
- &mut last_inline_box_ended_with_white_space,
- &mut on_word_boundary,
- );
- },
- InlineFormattingContextIterItem::Item(InlineLevelBox::InlineBox(inline_box)) => {
- if let Some(font) =
- get_font_for_first_font_for_style(&inline_box.style, font_context)
- {
- inline_box.default_font_index =
- Some(add_or_get_font(&font, &mut ifc_fonts));
- }
- },
- InlineFormattingContextIterItem::Item(InlineLevelBox::Atomic(_)) => {
- last_inline_box_ended_with_white_space = false;
- on_word_boundary = true;
- },
- _ => {},
- });
+ let mut linebreaker = None;
+ self.foreach(|iter_item| match iter_item {
+ InlineFormattingContextIterItem::Item(InlineLevelBox::TextRun(ref mut text_run)) => {
+ text_run.break_and_shape(
+ &layout_context.font_context,
+ &mut linebreaker,
+ &mut ifc_fonts,
+ &mut last_inline_box_ended_with_white_space,
+ &mut on_word_boundary,
+ );
+ },
+ InlineFormattingContextIterItem::Item(InlineLevelBox::InlineBox(inline_box)) => {
+ if let Some(font) = get_font_for_first_font_for_style(
+ &inline_box.style,
+ &layout_context.font_context,
+ ) {
+ inline_box.default_font_index = Some(add_or_get_font(&font, &mut ifc_fonts));
+ }
+ },
+ InlineFormattingContextIterItem::Item(InlineLevelBox::Atomic(_)) => {
+ last_inline_box_ended_with_white_space = false;
+ on_word_boundary = true;
+ },
+ _ => {},
});
self.font_metrics = ifc_fonts;