aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_2020/formatting_contexts.rs
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2020-06-06 00:07:49 +0200
committerSimon Sapin <simon.sapin@exyr.org>2020-06-23 00:41:27 +0200
commit01905923dbc2165c11a59bd5b097134c31bfbb59 (patch)
tree130569af931a79039a5bb5191cd3bf83705a54bc /components/layout_2020/formatting_contexts.rs
parent080f5bb763759298f56d574d4fe97288f776f171 (diff)
downloadservo-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.rs13
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()
})
},