From ee29e131b0689871321649aee346eb2b4955d310 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Thu, 27 Feb 2014 15:09:09 -0500 Subject: [PATCH] Bug 975789 - Sync the computation of whether we have a pseudo stacking context between two different places - r=dbaron --- layout/generic/nsFrame.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/layout/generic/nsFrame.cpp b/layout/generic/nsFrame.cpp index 966f8c78ddc..93ba03de2d1 100644 --- a/layout/generic/nsFrame.cpp +++ b/layout/generic/nsFrame.cpp @@ -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*