diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp index 70c1d1dcbc16..27029e59f143 100644 --- a/layout/base/nsDisplayList.cpp +++ b/layout/base/nsDisplayList.cpp @@ -2937,6 +2937,7 @@ nsDisplayWrapList::nsDisplayWrapList(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame, nsDisplayList* aList) : nsDisplayItem(aBuilder, aFrame) , mOverrideZIndex(0) + , mHasZIndexOverride(false) { MOZ_COUNT_CTOR(nsDisplayWrapList); @@ -2983,6 +2984,7 @@ nsDisplayWrapList::nsDisplayWrapList(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame, nsDisplayItem* aItem) : nsDisplayItem(aBuilder, aFrame) , mOverrideZIndex(0) + , mHasZIndexOverride(false) { MOZ_COUNT_CTOR(nsDisplayWrapList); diff --git a/layout/base/nsDisplayList.h b/layout/base/nsDisplayList.h index 7854720ac98e..b630508d0e6b 100644 --- a/layout/base/nsDisplayList.h +++ b/layout/base/nsDisplayList.h @@ -2511,7 +2511,7 @@ public: nsDisplayWrapList(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame, nsDisplayItem* aItem); nsDisplayWrapList(nsDisplayListBuilder* aBuilder, nsIFrame* aFrame) - : nsDisplayItem(aBuilder, aFrame), mOverrideZIndex(0) + : nsDisplayItem(aBuilder, aFrame), mOverrideZIndex(0), mHasZIndexOverride(false) { MOZ_COUNT_CTOR(nsDisplayWrapList); } @@ -2574,11 +2574,12 @@ public: virtual int32_t ZIndex() const MOZ_OVERRIDE { - return (mOverrideZIndex > 0) ? mOverrideZIndex : nsDisplayItem::ZIndex(); + return (mHasZIndexOverride) ? mOverrideZIndex : nsDisplayItem::ZIndex(); } void SetOverrideZIndex(int32_t aZIndex) { + mHasZIndexOverride = true; mOverrideZIndex = aZIndex; } @@ -2611,8 +2612,8 @@ protected: // this item's own frame. nsTArray mMergedFrames; nsRect mBounds; - // Overrides the ZIndex of our frame if > 0. int32_t mOverrideZIndex; + bool mHasZIndexOverride; }; /**