Bug 801784 - Only add invalidate children state flags up to the nearest display root. r=roc

This commit is contained in:
Matt Woodrow 2012-10-17 21:00:00 +13:00
parent bff886185d
commit dd83f2b21f

View File

@ -4793,13 +4793,15 @@ static void InvalidateFrameInternal(nsIFrame *aFrame, bool aHasDisplayItem = tru
if (aHasDisplayItem) {
parent->AddStateBits(NS_FRAME_DESCENDANT_NEEDS_PAINT);
}
nsSVGEffects::InvalidateDirectRenderingObservers(parent);
// If we're inside a popup, then we need to make sure that we
// call schedule paint so that the NS_FRAME_UPDATE_LAYER_TREE
// flag gets added to the popup display root frame.
if (nsLayoutUtils::IsPopup(parent)) {
needsSchedulePaint = true;
break;
}
nsSVGEffects::InvalidateDirectRenderingObservers(parent);
parent = nsLayoutUtils::GetCrossDocParentFrame(parent);
}
if (!aHasDisplayItem) {