Index: Source/core/paint/BoxPainter.cpp |
diff --git a/Source/core/paint/BoxPainter.cpp b/Source/core/paint/BoxPainter.cpp |
index e0acf8f6fa76770d308ece366c9d46db48c7cc00..efeaf5eceaeef4ae23bf487982c22b740d70a34b 100644 |
--- a/Source/core/paint/BoxPainter.cpp |
+++ b/Source/core/paint/BoxPainter.cpp |
@@ -264,16 +264,14 @@ void BoxPainter::applyBoxShadowForBackground(GraphicsContext* context, LayoutObj |
FloatRoundedRect BoxPainter::getBackgroundRoundedRect(LayoutObject& obj, const LayoutRect& borderRect, |
InlineFlowBox* box, LayoutUnit inlineBoxWidth, LayoutUnit inlineBoxHeight, |
- bool includeLogicalLeftEdge, bool includeLogicalRightEdge, const FloatRectOutsets* insets) |
+ bool includeLogicalLeftEdge, bool includeLogicalRightEdge) |
{ |
- FloatRoundedRect border = obj.style()->getRoundedBorderFor(borderRect, includeLogicalLeftEdge, |
- includeLogicalRightEdge, insets); |
+ FloatRoundedRect border = obj.style()->getRoundedBorderFor(borderRect, includeLogicalLeftEdge, includeLogicalRightEdge); |
if (box && (box->nextLineBox() || box->prevLineBox())) { |
FloatRoundedRect segmentBorder = obj.style()->getRoundedBorderFor(LayoutRect(0, 0, inlineBoxWidth, inlineBoxHeight), |
- includeLogicalLeftEdge, includeLogicalRightEdge, insets); |
+ includeLogicalLeftEdge, includeLogicalRightEdge); |
border.setRadii(segmentBorder.radii()); |
} |
- |
return border; |
} |
@@ -305,8 +303,13 @@ FloatRoundedRect BoxPainter::backgroundRoundedRectAdjustedForBleedAvoidance(Layo |
-fractionalInset * edges[BSBottom].width, |
-fractionalInset * edges[BSLeft].width); |
- return getBackgroundRoundedRect(obj, borderRect, box, boxSize.width(), boxSize.height(), |
- includeLogicalLeftEdge, includeLogicalRightEdge, &insets); |
+ FloatRoundedRect backgroundRoundedRect = getBackgroundRoundedRect(obj, borderRect, box, boxSize.width(), boxSize.height(), |
+ includeLogicalLeftEdge, includeLogicalRightEdge); |
+ FloatRect insetRect(backgroundRoundedRect.rect()); |
+ insetRect.expand(insets); |
+ FloatRoundedRect::Radii insetRadii(backgroundRoundedRect.radii()); |
+ insetRadii.shrink(-insets.top(), -insets.bottom(), -insets.left(), -insets.right()); |
+ return FloatRoundedRect(insetRect, insetRadii); |
} |
if (bleedAvoidance == BackgroundBleedBackgroundOverBorder) |
return obj.style()->getRoundedInnerBorderFor(borderRect, includeLogicalLeftEdge, includeLogicalRightEdge); |