aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/layout/block.rs52
1 files changed, 34 insertions, 18 deletions
diff --git a/components/layout/block.rs b/components/layout/block.rs
index c56ad429855..10bb2a055aa 100644
--- a/components/layout/block.rs
+++ b/components/layout/block.rs
@@ -2054,7 +2054,6 @@ pub trait ISizeAndMarginsComputer {
let mut computed_inline_size = self.initial_computed_inline_size(block,
parent_flow_inline_size,
layout_context);
-
let style = block.fragment.style();
match (computed_inline_size, style.get_box().box_sizing) {
(MaybeAuto::Specified(size), box_sizing::T::border_box) => {
@@ -2154,12 +2153,12 @@ pub trait ISizeAndMarginsComputer {
fn initial_computed_inline_size(&self,
block: &mut BlockFlow,
parent_flow_inline_size: Au,
- ctx: &LayoutContext)
+ layout_context: &LayoutContext)
-> MaybeAuto {
MaybeAuto::from_style(block.fragment().style().content_inline_size(),
self.containing_block_inline_size(block,
parent_flow_inline_size,
- ctx))
+ layout_context))
}
fn containing_block_inline_size(&self,
@@ -2259,32 +2258,49 @@ pub trait ISizeAndMarginsComputer {
match (inline_start_margin, computed_inline_size, inline_end_margin) {
// If all have a computed value other than 'auto', the system is
// over-constrained so we discard the end margin.
- (MaybeAuto::Specified(margin_start), MaybeAuto::Specified(inline_size), MaybeAuto::Specified(margin_end)) => {
+ (MaybeAuto::Specified(margin_start),
+ MaybeAuto::Specified(inline_size),
+ MaybeAuto::Specified(margin_end)) => {
if parent_has_same_direction {
(margin_start, inline_size, available_inline_size -
(margin_start + inline_size))
} else {
- (available_inline_size - (margin_end + inline_size), inline_size, margin_end)
+ (available_inline_size - (margin_end + inline_size),
+ inline_size,
+ margin_end)
}
}
// If exactly one value is 'auto', solve for it
- (MaybeAuto::Auto, MaybeAuto::Specified(inline_size), MaybeAuto::Specified(margin_end)) =>
+ (MaybeAuto::Auto,
+ MaybeAuto::Specified(inline_size),
+ MaybeAuto::Specified(margin_end)) =>
(available_inline_size - (inline_size + margin_end), inline_size, margin_end),
- (MaybeAuto::Specified(margin_start), MaybeAuto::Auto, MaybeAuto::Specified(margin_end)) =>
- (margin_start, available_inline_size - (margin_start + margin_end),
- margin_end),
- (MaybeAuto::Specified(margin_start), MaybeAuto::Specified(inline_size), MaybeAuto::Auto) =>
- (margin_start, inline_size, available_inline_size -
- (margin_start + inline_size)),
+ (MaybeAuto::Specified(margin_start),
+ MaybeAuto::Auto,
+ MaybeAuto::Specified(margin_end)) => {
+ (margin_start,
+ available_inline_size - (margin_start + margin_end),
+ margin_end)
+ }
+ (MaybeAuto::Specified(margin_start),
+ MaybeAuto::Specified(inline_size),
+ MaybeAuto::Auto) => {
+ (margin_start,
+ inline_size,
+ available_inline_size - (margin_start + inline_size))
+ }
// If inline-size is set to 'auto', any other 'auto' value becomes '0',
// and inline-size is solved for
- (MaybeAuto::Auto, MaybeAuto::Auto, MaybeAuto::Specified(margin_end)) =>
- (Au::new(0), available_inline_size - margin_end, margin_end),
- (MaybeAuto::Specified(margin_start), MaybeAuto::Auto, MaybeAuto::Auto) =>
- (margin_start, available_inline_size - margin_start, Au::new(0)),
- (MaybeAuto::Auto, MaybeAuto::Auto, MaybeAuto::Auto) =>
- (Au::new(0), available_inline_size, Au::new(0)),
+ (MaybeAuto::Auto, MaybeAuto::Auto, MaybeAuto::Specified(margin_end)) => {
+ (Au(0), available_inline_size - margin_end, margin_end)
+ }
+ (MaybeAuto::Specified(margin_start), MaybeAuto::Auto, MaybeAuto::Auto) => {
+ (margin_start, available_inline_size - margin_start, Au(0))
+ }
+ (MaybeAuto::Auto, MaybeAuto::Auto, MaybeAuto::Auto) => {
+ (Au(0), available_inline_size, Au(0))
+ }
// If inline-start and inline-end margins are auto, they become equal
(MaybeAuto::Auto, MaybeAuto::Specified(inline_size), MaybeAuto::Auto) => {