diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2020-06-06 00:07:49 +0200 |
---|---|---|
committer | Simon Sapin <simon.sapin@exyr.org> | 2020-06-23 00:41:27 +0200 |
commit | 01905923dbc2165c11a59bd5b097134c31bfbb59 (patch) | |
tree | 130569af931a79039a5bb5191cd3bf83705a54bc /components/layout_2020/formatting_contexts.rs | |
parent | 080f5bb763759298f56d574d4fe97288f776f171 (diff) | |
download | servo-01905923dbc2165c11a59bd5b097134c31bfbb59.tar.gz servo-01905923dbc2165c11a59bd5b097134c31bfbb59.zip |
First pass at implementing the Flex Layout Algorithm
https://drafts.csswg.org/css-flexbox/#layout-algorithm
Diffstat (limited to 'components/layout_2020/formatting_contexts.rs')
-rw-r--r-- | components/layout_2020/formatting_contexts.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/components/layout_2020/formatting_contexts.rs b/components/layout_2020/formatting_contexts.rs index 4dcb38952c0..0ec2bf1144c 100644 --- a/components/layout_2020/formatting_contexts.rs +++ b/components/layout_2020/formatting_contexts.rs @@ -134,6 +134,15 @@ impl IndependentFormattingContext { } } + pub fn inline_content_sizes(&mut self, layout_context: &LayoutContext) -> ContentSizes { + match self { + Self::NonReplaced(inner) => inner + .contents + .inline_content_sizes(layout_context, inner.style.writing_mode), + Self::Replaced(inner) => inner.contents.inline_content_sizes(&inner.style), + } + } + pub fn outer_inline_content_sizes( &mut self, layout_context: &LayoutContext, @@ -159,7 +168,9 @@ impl IndependentFormattingContext { let contents = &non_replaced.contents; sizing::outer_inline_and_percentages(&style, containing_block_writing_mode, || { content_sizes - .get_or_insert_with(|| contents.inline_content_sizes(layout_context, style.writing_mode)) + .get_or_insert_with(|| { + contents.inline_content_sizes(layout_context, style.writing_mode) + }) .clone() }) }, |