mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
layout: Stop in-order on children of InlineFlow
No need to do in-order traversal for children of InlineFlow, since they are either inline-block or absolutely positioned elements, which are guaranteed to be block formatting context.
This commit is contained in:
parent
2a575acabe
commit
71fcdf683a
1 changed files with 2 additions and 13 deletions
|
@ -1420,6 +1420,8 @@ impl Flow for InlineFlow {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Calculate and set the block-size of this flow. See CSS 2.1 § 10.6.1.
|
/// Calculate and set the block-size of this flow. See CSS 2.1 § 10.6.1.
|
||||||
|
/// Note that we do not need to do in-order traversal becase the children
|
||||||
|
/// are always block formatting context.
|
||||||
fn assign_block_size(&mut self, layout_context: &LayoutContext) {
|
fn assign_block_size(&mut self, layout_context: &LayoutContext) {
|
||||||
let _scope = layout_debug_scope!("inline::assign_block_size {:x}",
|
let _scope = layout_debug_scope!("inline::assign_block_size {:x}",
|
||||||
self.base.debug_id());
|
self.base.debug_id());
|
||||||
|
@ -1484,19 +1486,6 @@ impl Flow for InlineFlow {
|
||||||
indentation = Au(0)
|
indentation = Au(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Assign block sizes for any inline-block descendants.
|
|
||||||
let thread_id = self.base.thread_id;
|
|
||||||
for kid in self.base.child_iter_mut() {
|
|
||||||
if flow::base(kid).flags.contains(IS_ABSOLUTELY_POSITIONED) ||
|
|
||||||
flow::base(kid).flags.is_float() {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
let content_box = flow::base(kid).position;
|
|
||||||
kid.assign_block_size_for_inorder_child_if_necessary(layout_context,
|
|
||||||
thread_id,
|
|
||||||
content_box);
|
|
||||||
}
|
|
||||||
|
|
||||||
if self.contains_positioned_fragments() {
|
if self.contains_positioned_fragments() {
|
||||||
// Assign block-sizes for all flows in this absolute flow tree.
|
// Assign block-sizes for all flows in this absolute flow tree.
|
||||||
// This is preorder because the block-size of an absolute flow may depend on
|
// This is preorder because the block-size of an absolute flow may depend on
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue