mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1213545. Carry x,y offsets with inset box shadows. r=mstange
This commit is contained in:
parent
de2c7e167c
commit
9c478fd39f
@ -980,7 +980,8 @@ gfxAlphaBoxBlur::BlurInsetBox(gfxContext* aDestinationCtx,
|
||||
const Color& aShadowColor,
|
||||
bool aHasBorderRadius,
|
||||
const RectCornerRadii& aInnerClipRadii,
|
||||
const Rect aSkipRect)
|
||||
const Rect aSkipRect,
|
||||
const Point aShadowOffset)
|
||||
{
|
||||
// Blur inset shadows ALWAYS have a 0 spread radius.
|
||||
if ((aBlurRadius.width <= 0 && aBlurRadius.height <= 0)) {
|
||||
@ -1005,6 +1006,7 @@ gfxAlphaBoxBlur::BlurInsetBox(gfxContext* aDestinationCtx,
|
||||
srcInner.Deflate(Margin(slice));
|
||||
|
||||
Rect dstOuter(aDestinationRect);
|
||||
dstOuter.MoveBy(aShadowOffset);
|
||||
dstOuter.Inflate(Margin(extendDest));
|
||||
Rect dstInner = dstOuter;
|
||||
dstInner.Deflate(Margin(slice));
|
||||
|
@ -160,7 +160,8 @@ public:
|
||||
const mozilla::gfx::Color& aShadowColor,
|
||||
const bool aHasBorderRadius,
|
||||
const RectCornerRadii& aInnerClipRadii,
|
||||
const mozilla::gfx::Rect aSkipRect);
|
||||
const mozilla::gfx::Rect aSkipRect,
|
||||
const mozilla::gfx::Point aShadowOffset);
|
||||
|
||||
protected:
|
||||
already_AddRefed<mozilla::gfx::SourceSurface>
|
||||
|
@ -1606,11 +1606,15 @@ nsCSSRendering::PaintBoxShadowInner(nsPresContext* aPresContext,
|
||||
|
||||
nsContextBoxBlur insetBoxBlur;
|
||||
gfxRect destRect = nsLayoutUtils::RectToGfxRect(shadowPaintRect, twipsPerPixel);
|
||||
Point shadowOffset(shadowItem->mXOffset / twipsPerPixel,
|
||||
shadowItem->mYOffset / twipsPerPixel);
|
||||
|
||||
insetBoxBlur.InsetBoxBlur(renderContext, ToRect(destRect),
|
||||
shadowClipGfxRect, shadowColor,
|
||||
blurRadius, spreadDistanceAppUnits,
|
||||
twipsPerPixel, hasBorderRadius,
|
||||
clipRectRadii, ToRect(skipGfxRect));
|
||||
clipRectRadii, ToRect(skipGfxRect),
|
||||
shadowOffset);
|
||||
renderContext->Restore();
|
||||
}
|
||||
}
|
||||
@ -5544,7 +5548,7 @@ nsContextBoxBlur::InsetBoxBlur(gfxContext* aDestinationCtx,
|
||||
int32_t aAppUnitsPerDevPixel,
|
||||
bool aHasBorderRadius,
|
||||
RectCornerRadii& aInnerClipRectRadii,
|
||||
Rect aSkipRect)
|
||||
Rect aSkipRect, Point aShadowOffset)
|
||||
{
|
||||
if (aDestinationRect.IsEmpty()) {
|
||||
mContext = nullptr;
|
||||
@ -5586,9 +5590,9 @@ nsContextBoxBlur::InsetBoxBlur(gfxContext* aDestinationCtx,
|
||||
mAlphaBoxBlur.BlurInsetBox(aDestinationCtx, transformedDestRect,
|
||||
transformedShadowClipRect,
|
||||
blurRadius, spreadRadius,
|
||||
aShadowColor,
|
||||
aHasBorderRadius,
|
||||
aInnerClipRectRadii, transformedSkipRect);
|
||||
aShadowColor, aHasBorderRadius,
|
||||
aInnerClipRectRadii, transformedSkipRect,
|
||||
aShadowOffset);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -982,7 +982,8 @@ public:
|
||||
int32_t aAppUnitsPerDevPixel,
|
||||
bool aHasBorderRadius,
|
||||
RectCornerRadii& aInnerClipRectRadii,
|
||||
mozilla::gfx::Rect aSkipRect);
|
||||
mozilla::gfx::Rect aSkipRect,
|
||||
mozilla::gfx::Point aShadowOffset);
|
||||
|
||||
protected:
|
||||
static void GetBlurAndSpreadRadius(gfxContext* aContext,
|
||||
|
Loading…
Reference in New Issue
Block a user