From 6bb49cb66db09cb172b7ec694aa09408177d8584 Mon Sep 17 00:00:00 2001 From: Tj Holowaychuk Date: Sat, 6 Nov 2010 14:21:26 -0700 Subject: [PATCH] Ignore blur when shadowBlur == 0 --- src/CanvasRenderingContext2d.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/CanvasRenderingContext2d.cc b/src/CanvasRenderingContext2d.cc index 8d5d593..5c59af3 100644 --- a/src/CanvasRenderingContext2d.cc +++ b/src/CanvasRenderingContext2d.cc @@ -1059,7 +1059,10 @@ Context2d::FillRect(const Arguments &args) { cairo_rectangle(ctx, x, y, width, height); SET_SOURCE_RGBA(context->state->shadow); cairo_fill(ctx); - Canvas::blur(context->getCanvas()->getSurface(), context->state->shadowBlur); + + if (context->state->shadowBlur) { + Canvas::blur(context->getCanvas()->getSurface(), context->state->shadowBlur); + } cairo_restore(ctx); cairo_rectangle(ctx, x, y, width, height); @@ -1096,7 +1099,10 @@ Context2d::StrokeRect(const Arguments &args) { cairo_rectangle(ctx, x, y, width, height); SET_SOURCE_RGBA(context->state->shadow); cairo_stroke(ctx); - Canvas::blur(context->getCanvas()->getSurface(), context->state->shadowBlur); + + if (context->state->shadowBlur) { + Canvas::blur(context->getCanvas()->getSurface(), context->state->shadowBlur); + } cairo_restore(ctx); cairo_rectangle(ctx, x, y, width, height); @@ -1181,5 +1187,6 @@ Context2d::Arc(const Arguments &args) { bool Context2d::hasShadow() { - return state->shadow.a && state->shadowBlur; + return state->shadow.a + && (state->shadowBlur || state->shadowOffsetX || state->shadowOffsetX); } \ No newline at end of file