From 2a0c6d5e7c2450ca284993b8dbab2a2e7a3be4dd Mon Sep 17 00:00:00 2001 From: cku Date: Thu, 6 Oct 2016 17:53:19 +0800 Subject: [PATCH] Bug 1299715 - Part 2. Correct the value of nsDisplayMask::mVisibleRect. r=mstange In nsDisplayItem::RecomputeVisibility, we compute and assign the value of mVisibleRect base on the return value of nsDisplayMask::GetBounds. Before this patch, the region of out-of-flow descendants is discarded. MozReview-Commit-ID: JEeegiO1a6J --HG-- extra : rebase_source : 0e66c0765d7eb7700592ab947c92a705a7281ea5 --- layout/base/nsDisplayList.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/layout/base/nsDisplayList.h b/layout/base/nsDisplayList.h index 708dd560d90d..0ec54f1c7b02 100644 --- a/layout/base/nsDisplayList.h +++ b/layout/base/nsDisplayList.h @@ -3853,11 +3853,6 @@ public: virtual void HitTest(nsDisplayListBuilder* aBuilder, const nsRect& aRect, HitTestState* aState, nsTArray *aOutFrames) override; - virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder, - bool* aSnap) override { - *aSnap = false; - return mEffectsBounds + ToReferenceFrame(); - } virtual bool ShouldFlattenAway(nsDisplayListBuilder* aBuilder) override { return false; @@ -3937,7 +3932,11 @@ public: virtual LayerState GetLayerState(nsDisplayListBuilder* aBuilder, LayerManager* aManager, const ContainerLayerParameters& aParameters) override; - + virtual nsRect GetBounds(nsDisplayListBuilder* aBuilder, + bool* aSnap) override { + *aSnap = false; + return mEffectsBounds + ToReferenceFrame(); + } virtual bool ComputeVisibility(nsDisplayListBuilder* aBuilder, nsRegion* aVisibleRegion) override; #ifdef MOZ_DUMP_PAINTING