layout: Allow the overflow area of the <body> to be scrolled.

Fixes scrolling on Twitter.
This commit is contained in:
Patrick Walton 2015-09-10 18:06:37 -07:00
parent f190ba360e
commit 99587cf105
4 changed files with 46 additions and 1 deletions

View file

@ -1031,7 +1031,11 @@ impl LayoutTask {
flow_ref::deref_mut(layout_root));
let root_size = {
let root_flow = flow::base(&**layout_root);
root_flow.position.size.to_physical(root_flow.writing_mode)
if rw_data.stylist.constrain_viewport().is_some() {
root_flow.position.size.to_physical(root_flow.writing_mode)
} else {
root_flow.overflow.size
}
};
let mut display_list = box DisplayList::new();
flow::mut_base(flow_ref::deref_mut(layout_root))

View file

@ -482,6 +482,9 @@ pub fn traverse_flow_tree_preorder(
})
});
}, shared_layout_context);
let layout_context = LayoutContext::new(shared_layout_context);
flow_ref::deref_mut(root).late_store_overflow(&layout_context);
}
pub fn build_display_list_for_subtree(

View file

@ -92,6 +92,8 @@ pub fn traverse_flow_tree_preorder(root: &mut FlowRef,
let assign_block_sizes = AssignBSizesAndStoreOverflow { layout_context: &layout_context };
doit(root, assign_inline_sizes, assign_block_sizes);
root.late_store_overflow(&layout_context);
}
pub fn build_display_list_for_subtree(root: &mut FlowRef,