diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2019-05-06 10:17:08 +0200 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2019-05-07 12:56:10 +0200 |
commit | 0000e4cec281cc5770c6400e747867877351ab6d (patch) | |
tree | e9050bc703c44cbc9e216ddfd39cd88fa24fc226 /components/layout/inline.rs | |
parent | 561018da7d3302c3205f059440ecd987d5be1a92 (diff) | |
download | servo-0000e4cec281cc5770c6400e747867877351ab6d.tar.gz servo-0000e4cec281cc5770c6400e747867877351ab6d.zip |
layout: fix Servo build.
Diffstat (limited to 'components/layout/inline.rs')
-rw-r--r-- | components/layout/inline.rs | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/components/layout/inline.rs b/components/layout/inline.rs index bef95a64f96..f4dacefc5ef 100644 --- a/components/layout/inline.rs +++ b/components/layout/inline.rs @@ -41,7 +41,7 @@ use style::logical_geometry::{LogicalRect, LogicalSize, WritingMode}; use style::properties::ComputedValues; use style::servo::restyle_damage::ServoRestyleDamage; use style::values::computed::box_::VerticalAlign; -use style::values::generics::box_::VerticalAlign as GenericVerticalAlign; +use style::values::generics::box_::VerticalAlignKeyword; use style::values::specified::text::TextOverflowSide; use unicode_bidi as bidi; @@ -1269,13 +1269,13 @@ impl InlineFlow { let mut largest_block_size_for_top_fragments = Au(0); let mut largest_block_size_for_bottom_fragments = Au(0); - // We use `VerticalAlign::Baseline` here because `vertical-align` must + // We use `VerticalAlign::baseline()` here because `vertical-align` must // not apply to the inside of inline blocks. update_line_metrics_for_fragment( &mut line_metrics, &inline_metrics, style.get_box().display, - GenericVerticalAlign::Baseline, + VerticalAlign::baseline(), &mut largest_block_size_for_top_fragments, &mut largest_block_size_for_bottom_fragments, ); @@ -1322,11 +1322,20 @@ impl InlineFlow { largest_block_size_for_top_fragments: &mut Au, largest_block_size_for_bottom_fragments: &mut Au, ) { + // FIXME(emilio): This should probably be handled. + let vertical_align_value = match vertical_align_value { + VerticalAlign::Keyword(kw) => kw, + VerticalAlign::Length(..) => { + *line_metrics = line_metrics.new_metrics_for_fragment(inline_metrics); + return; + }, + }; + match (display_value, vertical_align_value) { - (Display::Inline, GenericVerticalAlign::Top) | - (Display::Block, GenericVerticalAlign::Top) | - (Display::InlineFlex, GenericVerticalAlign::Top) | - (Display::InlineBlock, GenericVerticalAlign::Top) + (Display::Inline, VerticalAlignKeyword::Top) | + (Display::Block, VerticalAlignKeyword::Top) | + (Display::InlineFlex, VerticalAlignKeyword::Top) | + (Display::InlineBlock, VerticalAlignKeyword::Top) if inline_metrics.space_above_baseline >= Au(0) => { *largest_block_size_for_top_fragments = max( @@ -1334,10 +1343,10 @@ impl InlineFlow { inline_metrics.space_above_baseline + inline_metrics.space_below_baseline, ) }, - (Display::Inline, GenericVerticalAlign::Bottom) | - (Display::Block, GenericVerticalAlign::Bottom) | - (Display::InlineFlex, GenericVerticalAlign::Bottom) | - (Display::InlineBlock, GenericVerticalAlign::Bottom) + (Display::Inline, VerticalAlignKeyword::Bottom) | + (Display::Block, VerticalAlignKeyword::Bottom) | + (Display::InlineFlex, VerticalAlignKeyword::Bottom) | + (Display::InlineBlock, VerticalAlignKeyword::Bottom) if inline_metrics.space_below_baseline >= Au(0) => { *largest_block_size_for_bottom_fragments = max( |