aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/construct.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2016-04-15 17:25:24 -0700
committerPatrick Walton <pcwalton@mimiga.net>2016-04-15 17:27:25 -0700
commite840c7aaa09627979c2cec69277a04f884489e6b (patch)
tree01dc6b124d537d71a3da32f96ba54a6d2dd38182 /components/layout/construct.rs
parentccfd768c4bd6874c67f1c45c23d770f617452a07 (diff)
downloadservo-e840c7aaa09627979c2cec69277a04f884489e6b.tar.gz
servo-e840c7aaa09627979c2cec69277a04f884489e6b.zip
layout: Make absolutely-positioned blocks not generate {ib} splits.
Improves YouTube. Closes #10642.
Diffstat (limited to 'components/layout/construct.rs')
-rw-r--r--components/layout/construct.rs27
1 files changed, 14 insertions, 13 deletions
diff --git a/components/layout/construct.rs b/components/layout/construct.rs
index 8ba85710ae3..4099e1f9af5 100644
--- a/components/layout/construct.rs
+++ b/components/layout/construct.rs
@@ -512,19 +512,20 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode>
} else if flow.need_anonymous_flow(&*kid_flow) {
consecutive_siblings.push(kid_flow)
} else {
- // Flush any inline fragments that we were gathering up. This allows us to
- // handle {ib} splits.
- debug!("flushing {} inline box(es) to flow A",
- inline_fragment_accumulator.fragments.fragments.len());
- let old_inline_fragment_accumulator =
- mem::replace(inline_fragment_accumulator,
- InlineFragmentsAccumulator::new());
- self.flush_inline_fragments_to_flow_or_list(
- old_inline_fragment_accumulator,
- flow,
- consecutive_siblings,
- abs_descendants,
- node);
+ if !flow::base(&*kid_flow).flags.contains(IS_ABSOLUTELY_POSITIONED) {
+ // Flush any inline fragments that we were gathering up. This allows us to
+ // handle {ib} splits.
+ let old_inline_fragment_accumulator =
+ mem::replace(inline_fragment_accumulator,
+ InlineFragmentsAccumulator::new());
+ self.flush_inline_fragments_to_flow_or_list(
+ old_inline_fragment_accumulator,
+ flow,
+ consecutive_siblings,
+ abs_descendants,
+ node);
+ }
+
if !consecutive_siblings.is_empty() {
let consecutive_siblings = mem::replace(consecutive_siblings, vec!());
self.generate_anonymous_missing_child(consecutive_siblings, flow, node);