layout: Allow non-absolutely-positioned elements with overflow: scroll

set to be scrolled.

This makes them establish stacking contexts, which is a CSS 2.1 spec
violation. However, we were already violating the spec here for
absolutely-positioned elements with `overflow: scroll`. It will probably
be easier to fix this spec violation once we either switch entirely to
WebRender or we have multiple layers per stacking context.

Closes #2742.
This commit is contained in:
Patrick Walton 2016-04-06 17:53:11 -07:00
parent 0b951f65b9
commit 1e884ddc69
4 changed files with 54 additions and 27 deletions

View file

@ -1563,10 +1563,6 @@ impl BlockFlow {
}
pub fn has_scrolling_overflow(&self) -> bool {
if !self.base.flags.contains(IS_ABSOLUTELY_POSITIONED) {
return false;
}
match (self.fragment.style().get_box().overflow_x,
self.fragment.style().get_box().overflow_y.0) {
(overflow_x::T::auto, _) | (overflow_x::T::scroll, _) |