aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/incremental.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout/incremental.rs')
-rw-r--r--components/layout/incremental.rs55
1 files changed, 37 insertions, 18 deletions
diff --git a/components/layout/incremental.rs b/components/layout/incremental.rs
index ff1e0813ccd..f0f76453919 100644
--- a/components/layout/incremental.rs
+++ b/components/layout/incremental.rs
@@ -11,7 +11,7 @@ use style::servo::restyle_damage::ServoRestyleDamage;
#[derive(Clone, Copy, PartialEq)]
pub enum RelayoutMode {
Incremental,
- Force
+ Force,
}
bitflags! {
@@ -30,7 +30,10 @@ pub trait LayoutDamageComputation {
impl<'a> LayoutDamageComputation for &'a mut Flow {
fn compute_layout_damage(self) -> SpecialRestyleDamage {
let mut special_damage = SpecialRestyleDamage::empty();
- let is_absolutely_positioned = self.base().flags.contains(FlowFlags::IS_ABSOLUTELY_POSITIONED);
+ let is_absolutely_positioned = self
+ .base()
+ .flags
+ .contains(FlowFlags::IS_ABSOLUTELY_POSITIONED);
// In addition to damage, we use this phase to compute whether nodes affect CSS counters.
let mut has_counter_affecting_children = false;
@@ -41,35 +44,47 @@ impl<'a> LayoutDamageComputation for &'a mut Flow {
let parent_damage = self_base.restyle_damage;
for kid in self_base.children.iter_mut() {
- let child_is_absolutely_positioned =
- kid.base().flags.contains(FlowFlags::IS_ABSOLUTELY_POSITIONED);
+ let child_is_absolutely_positioned = kid
+ .base()
+ .flags
+ .contains(FlowFlags::IS_ABSOLUTELY_POSITIONED);
kid.mut_base().restyle_damage.insert(
- parent_damage.damage_for_child(is_absolutely_positioned,
- child_is_absolutely_positioned));
+ parent_damage
+ .damage_for_child(is_absolutely_positioned, child_is_absolutely_positioned),
+ );
{
let kid: &mut Flow = kid;
special_damage.insert(kid.compute_layout_damage());
}
- self_base.restyle_damage
- .insert(kid.base().restyle_damage.damage_for_parent(
- child_is_absolutely_positioned));
+ self_base.restyle_damage.insert(
+ kid.base()
+ .restyle_damage
+ .damage_for_parent(child_is_absolutely_positioned),
+ );
- has_counter_affecting_children = has_counter_affecting_children ||
- kid.base().flags.intersects(FlowFlags::AFFECTS_COUNTERS |
- FlowFlags::HAS_COUNTER_AFFECTING_CHILDREN);
+ has_counter_affecting_children =
+ has_counter_affecting_children || kid.base().flags.intersects(
+ FlowFlags::AFFECTS_COUNTERS | FlowFlags::HAS_COUNTER_AFFECTING_CHILDREN,
+ );
}
}
let self_base = self.mut_base();
- if self_base.flags.float_kind() != Float::None &&
- self_base.restyle_damage.intersects(ServoRestyleDamage::REFLOW) {
+ if self_base.flags.float_kind() != Float::None && self_base
+ .restyle_damage
+ .intersects(ServoRestyleDamage::REFLOW)
+ {
special_damage.insert(SpecialRestyleDamage::REFLOW_ENTIRE_DOCUMENT);
}
if has_counter_affecting_children {
- self_base.flags.insert(FlowFlags::HAS_COUNTER_AFFECTING_CHILDREN)
+ self_base
+ .flags
+ .insert(FlowFlags::HAS_COUNTER_AFFECTING_CHILDREN)
} else {
- self_base.flags.remove(FlowFlags::HAS_COUNTER_AFFECTING_CHILDREN)
+ self_base
+ .flags
+ .remove(FlowFlags::HAS_COUNTER_AFFECTING_CHILDREN)
}
special_damage
@@ -77,8 +92,12 @@ impl<'a> LayoutDamageComputation for &'a mut Flow {
fn reflow_entire_document(self) {
let self_base = self.mut_base();
- self_base.restyle_damage.insert(RestyleDamage::rebuild_and_reflow());
- self_base.restyle_damage.remove(ServoRestyleDamage::RECONSTRUCT_FLOW);
+ self_base
+ .restyle_damage
+ .insert(RestyleDamage::rebuild_and_reflow());
+ self_base
+ .restyle_damage
+ .remove(ServoRestyleDamage::RECONSTRUCT_FLOW);
for kid in self_base.children.iter_mut() {
kid.reflow_entire_document();
}