From 72354ba9c1348e858a0b58d30d02ea1413987e28 Mon Sep 17 00:00:00 2001 From: Robert O'Callahan Date: Wed, 26 Nov 2008 11:19:34 +1300 Subject: [PATCH] Bug 463952. Expand destArea according to CSS background-repeat *before* intersecting with bgClipArea, instead of after. r+sr=dbaron --- layout/base/nsCSSRendering.cpp | 4 ++-- layout/reftests/bugs/463952-1-ref.html | 6 ++++++ layout/reftests/bugs/463952-1.html | 11 +++++++++++ layout/reftests/bugs/reftest.list | 1 + 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 layout/reftests/bugs/463952-1-ref.html create mode 100644 layout/reftests/bugs/463952-1.html diff --git a/layout/base/nsCSSRendering.cpp b/layout/base/nsCSSRendering.cpp index 321f0571ab..5a7ecca678 100644 --- a/layout/base/nsCSSRendering.cpp +++ b/layout/base/nsCSSRendering.cpp @@ -1518,8 +1518,7 @@ nsCSSRendering::PaintBackgroundWithSC(nsPresContext* aPresContext, } nsRect destArea(imageTopLeft + aBorderArea.TopLeft(), imageSize); - nsRect fillArea; - fillArea.IntersectRect(destArea, bgClipArea); + nsRect fillArea = destArea; if (repeat & NS_STYLE_BG_REPEAT_X) { fillArea.x = bgClipArea.x; fillArea.width = bgClipArea.width; @@ -1528,6 +1527,7 @@ nsCSSRendering::PaintBackgroundWithSC(nsPresContext* aPresContext, fillArea.y = bgClipArea.y; fillArea.height = bgClipArea.height; } + fillArea.IntersectRect(fillArea, bgClipArea); nsLayoutUtils::DrawImage(&aRenderingContext, image, destArea, fillArea, anchor + aBorderArea.TopLeft(), dirtyRect); diff --git a/layout/reftests/bugs/463952-1-ref.html b/layout/reftests/bugs/463952-1-ref.html new file mode 100644 index 0000000000..f90bb9bfc2 --- /dev/null +++ b/layout/reftests/bugs/463952-1-ref.html @@ -0,0 +1,6 @@ + + + +
+ + diff --git a/layout/reftests/bugs/463952-1.html b/layout/reftests/bugs/463952-1.html new file mode 100644 index 0000000000..5132674ad9 --- /dev/null +++ b/layout/reftests/bugs/463952-1.html @@ -0,0 +1,11 @@ + + + + + + +
+ +
+ + diff --git a/layout/reftests/bugs/reftest.list b/layout/reftests/bugs/reftest.list index b0979e0378..04640504e5 100644 --- a/layout/reftests/bugs/reftest.list +++ b/layout/reftests/bugs/reftest.list @@ -973,4 +973,5 @@ fails == 461512-1.html 461512-1-ref.html # Bug 461512 == 462844-4.html 462844-ref.html == 463204-1.html 463204-1-ref.html == 463217-1.xul 463217-1-ref.xul +== 463952-1.html 463952-1-ref.html == 464811-1.html 464811-1-ref.html -- 2.11.4.GIT