Bug 975789 - Sync the computation of whether we have a pseudo stacking context between two different places - r=dbaron

This commit is contained in:
Benoit Jacob 2014-02-27 15:09:09 -05:00
parent 4db5c46567
commit ee29e131b0

View File

@ -2203,6 +2203,7 @@ nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder* aBuilder,
if (isVisuallyAtomic || isPositioned || (!isSVG && disp->IsFloating(child)) ||
((disp->mClipFlags & NS_STYLE_CLIP_RECT) &&
IsSVGContentWithCSSClip(child)) ||
(disp->mWillChangeBitField & NS_STYLE_WILL_CHANGE_STACKING_CONTEXT) ||
(aFlags & DISPLAY_CHILD_FORCE_STACKING_CONTEXT)) {
// If you change this, also change IsPseudoStackingContextFromStyle()
pseudoStackingContext = true;
@ -8381,9 +8382,12 @@ nsIFrame::DestroyRegion(void* aPropertyValue)
bool
nsIFrame::IsPseudoStackingContextFromStyle() {
const nsStyleDisplay* disp = StyleDisplay();
// If you change this, also change the computation of pseudoStackingContext
// in BuildDisplayListForChild()
return disp->mOpacity != 1.0f ||
disp->IsPositioned(this) ||
disp->IsFloating(this);
disp->IsFloating(this) ||
(disp->mWillChangeBitField & NS_STYLE_WILL_CHANGE_STACKING_CONTEXT);
}
Element*