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.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/components/layout_2020/flow/inline.rs b/components/layout_2020/flow/inline.rs
index 8ea53e6017c..bf90a9532f6 100644
--- a/components/layout_2020/flow/inline.rs
+++ b/components/layout_2020/flow/inline.rs
@@ -85,6 +85,7 @@ use style::properties::ComputedValues;
use style::values::computed::Length;
use style::values::generics::box_::VerticalAlignKeyword;
use style::values::generics::font::LineHeight;
+use style::values::specified::box_::BaselineSource;
use style::values::specified::text::{TextAlignKeyword, TextDecorationLine};
use style::values::specified::{TextAlignLast, TextJustify};
use style::Zero;
@@ -2143,13 +2144,18 @@ impl IndependentFormattingContext {
/// Picks either the first or the last baseline, depending on `baseline-source`.
/// <https://drafts.csswg.org/css-inline/#baseline-source>
fn pick_baseline(&self, baselines: &Baselines) -> Option<Au> {
- // TODO: Currently this only supports the initial `baseline-source: auto`.
- if let Self::NonReplaced(non_replaced) = self {
- if let NonReplacedFormattingContextContents::Flow(_) = non_replaced.contents {
- return baselines.last;
- }
+ match self.style().clone_baseline_source() {
+ BaselineSource::First => baselines.first,
+ BaselineSource::Last => baselines.last,
+ BaselineSource::Auto => {
+ if let Self::NonReplaced(non_replaced) = self {
+ if let NonReplacedFormattingContextContents::Flow(_) = non_replaced.contents {
+ return baselines.last;
+ }
+ }
+ baselines.first
+ },
}
- baselines.first
}
fn get_block_sizes_and_baseline_offset(