Bug 1258843 - Don't build SVG display items if their visibility is hidden. r=dholbert

--HG--
extra : rebase_source : 733e628c70e6a0d73d4bb722c587b65752cef9bc
This commit is contained in:
Matt Woodrow 2016-04-01 14:36:46 +13:00
Родитель d376f9f82e
Коммит 855dbe76b2
3 изменённых файлов: 7 добавлений и 2 удалений

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

@ -3250,6 +3250,10 @@ SVGTextFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
// painting.
return;
}
if (!IsVisibleForPainting(aBuilder) &&
aBuilder->IsForPainting()) {
return;
}
aLists.Content()->AppendNewToTop(
new (aBuilder) nsDisplaySVGText(aBuilder, this));
}

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

@ -746,7 +746,7 @@ nsSVGOuterSVGFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
nsDisplayListSet set(contentList, contentList, contentList,
contentList, contentList, contentList);
BuildDisplayListForNonBlockChildren(aBuilder, aDirtyRect, set);
} else {
} else if (IsVisibleForPainting(aBuilder) || !aBuilder->IsForPainting()) {
aLists.Content()->AppendNewToTop(
new (aBuilder) nsDisplayOuterSVG(aBuilder, this));
}

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

@ -231,7 +231,8 @@ nsSVGPathGeometryFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
const nsRect& aDirtyRect,
const nsDisplayListSet& aLists)
{
if (!static_cast<const nsSVGElement*>(mContent)->HasValidDimensions()) {
if (!static_cast<const nsSVGElement*>(mContent)->HasValidDimensions() ||
(!IsVisibleForPainting(aBuilder) && aBuilder->IsForPainting())) {
return;
}
aLists.Content()->AppendNewToTop(