diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp index d3c7ffbe6261..6e4d05c67885 100644 --- a/layout/base/nsDisplayList.cpp +++ b/layout/base/nsDisplayList.cpp @@ -2065,6 +2065,9 @@ nsDisplayBackgroundImage::IsVaryingRelativeToMovingFrame(nsDisplayListBuilder* a nsRect nsDisplayBackgroundImage::GetPositioningArea() { + if (mIsThemed) { + return nsRect(ToReferenceFrame(), mFrame->GetSize()); + } if (!mBackgroundStyle) { return nsRect(); } @@ -2138,7 +2141,7 @@ void nsDisplayBackgroundImage::ComputeInvalidationRegion(nsDisplayListBuilder* a const nsDisplayItemGeometry* aGeometry, nsRegion* aInvalidRegion) { - if (!mBackgroundStyle) { + if (!mIsThemed && !mBackgroundStyle) { return; } diff --git a/layout/reftests/bugs/828146-1-ref.html b/layout/reftests/bugs/828146-1-ref.html new file mode 100644 index 000000000000..f5ec280a992b --- /dev/null +++ b/layout/reftests/bugs/828146-1-ref.html @@ -0,0 +1,6 @@ + + + +
+ + diff --git a/layout/reftests/bugs/828146-1.html b/layout/reftests/bugs/828146-1.html new file mode 100644 index 000000000000..e196c5f8c88e --- /dev/null +++ b/layout/reftests/bugs/828146-1.html @@ -0,0 +1,14 @@ + + + +
+ + +