aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/inline.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout/inline.rs')
-rw-r--r--components/layout/inline.rs28
1 files changed, 16 insertions, 12 deletions
diff --git a/components/layout/inline.rs b/components/layout/inline.rs
index 4b5a6b985c7..17d6af7ccbc 100644
--- a/components/layout/inline.rs
+++ b/components/layout/inline.rs
@@ -183,9 +183,9 @@ int_range_index! {
bitflags! {
flags InlineReflowFlags: u8 {
- #[doc="The `white-space: nowrap` property from CSS 2.1 § 16.6 is in effect."]
+ #[doc = "The `white-space: nowrap` property from CSS 2.1 § 16.6 is in effect."]
const NO_WRAP_INLINE_REFLOW_FLAG = 0x01,
- #[doc="The `white-space: pre` property from CSS 2.1 § 16.6 is in effect."]
+ #[doc = "The `white-space: pre` property from CSS 2.1 § 16.6 is in effect."]
const WRAP_ON_NEWLINE_INLINE_REFLOW_FLAG = 0x02
}
}
@@ -1645,10 +1645,10 @@ impl Flow for InlineFlow {
let stacking_relative_border_box =
fragment.stacking_relative_border_box(&self.base.stacking_relative_position,
&self.base
- .absolute_position_info
+ .early_absolute_position_info
.relative_containing_block_size,
self.base
- .absolute_position_info
+ .early_absolute_position_info
.relative_containing_block_mode,
CoordinateSystem::Parent);
let clip = fragment.clipping_region_for_children(&self.base.clip,
@@ -1661,13 +1661,14 @@ impl Flow for InlineFlow {
flow::mut_base(flow).clip = clip;
let block_flow = flow.as_mut_block();
- block_flow.base.absolute_position_info = self.base.absolute_position_info;
+ block_flow.base.late_absolute_position_info =
+ self.base.late_absolute_position_info;
let stacking_relative_position = self.base.stacking_relative_position;
if is_positioned {
let padding_box_origin = containing_block_positions.next().unwrap();
block_flow.base
- .absolute_position_info
+ .late_absolute_position_info
.stacking_relative_position_of_absolute_containing_block =
stacking_relative_position + *padding_box_origin;
}
@@ -1681,7 +1682,8 @@ impl Flow for InlineFlow {
let flow = flow_ref::deref_mut(&mut info.flow_ref);
flow::mut_base(flow).clip = clip;
let block_flow = flow.as_mut_block();
- block_flow.base.absolute_position_info = self.base.absolute_position_info;
+ block_flow.base.late_absolute_position_info =
+ self.base.late_absolute_position_info;
block_flow.base.stacking_relative_position =
stacking_relative_border_box.origin;
@@ -1693,12 +1695,13 @@ impl Flow for InlineFlow {
flow::mut_base(flow).clip = clip;
let block_flow = flow.as_mut_block();
- block_flow.base.absolute_position_info = self.base.absolute_position_info;
+ block_flow.base.late_absolute_position_info =
+ self.base.late_absolute_position_info;
let stacking_relative_position = self.base.stacking_relative_position;
let padding_box_origin = containing_block_positions.next().unwrap();
block_flow.base
- .absolute_position_info
+ .late_absolute_position_info
.stacking_relative_position_of_absolute_containing_block =
stacking_relative_position + *padding_box_origin;
@@ -1725,7 +1728,8 @@ impl Flow for InlineFlow {
fn compute_overflow(&self) -> Rect<Au> {
let mut overflow = ZERO_RECT;
for fragment in &self.fragments.fragments {
- overflow = overflow.union(&fragment.compute_overflow())
+ overflow = overflow.union(&fragment.compute_overflow(
+ &self.base.early_absolute_position_info.relative_containing_block_size))
}
overflow
}
@@ -1742,9 +1746,9 @@ impl Flow for InlineFlow {
let stacking_relative_position = &self.base.stacking_relative_position;
let relative_containing_block_size =
- &self.base.absolute_position_info.relative_containing_block_size;
+ &self.base.early_absolute_position_info.relative_containing_block_size;
let relative_containing_block_mode =
- self.base.absolute_position_info.relative_containing_block_mode;
+ self.base.early_absolute_position_info.relative_containing_block_mode;
iterator.process(fragment,
level,
&fragment.stacking_relative_border_box(stacking_relative_position,