Bug 1285409. Store out of flow data for frames we are going to descent into anyways (despite no intersection with the dirty rect) so we have the correct clip for them. r=mattwoodrow

If the frame already has the NS_FRAME_FORCE_DISPLAY_LIST_DESCEND_INTO bit we are going to descend into it anyways, so we may as well store the oof data so we can have the correct clip.

Sometimes we add the bit after this test though, so it doesn't allow us to have the proper clip in all cases.
This commit is contained in:
Timothy Nikkel 2016-07-08 00:25:18 -05:00
Родитель 1ed92648d1
Коммит 7220b22c54
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -879,8 +879,10 @@ void nsDisplayListBuilder::MarkOutOfFlowFrameForDisplay(nsIFrame* aDirtyFrame,
overflowRect.Inflate(nsPresContext::CSSPixelsToAppUnits(32));
}
if (!dirty.IntersectRect(dirty, overflowRect))
if (!dirty.IntersectRect(dirty, overflowRect) &&
!(aFrame->GetStateBits() & NS_FRAME_FORCE_DISPLAY_LIST_DESCEND_INTO)) {
return;
}
const DisplayItemClip* oldClip = mClipState.GetClipForContainingBlockDescendants();
const DisplayItemScrollClip* sc = mClipState.GetCurrentInnermostScrollClip();