Index: Source/core/html/canvas/CanvasRenderingContext2D.cpp |
diff --git a/Source/core/html/canvas/CanvasRenderingContext2D.cpp b/Source/core/html/canvas/CanvasRenderingContext2D.cpp |
index c7aee8fc69a605c7c06e9fafb1d49a4fd739a87b..e9c0e59d0b15971e351e0828040af04fe3d7b25d 100644 |
--- a/Source/core/html/canvas/CanvasRenderingContext2D.cpp |
+++ b/Source/core/html/canvas/CanvasRenderingContext2D.cpp |
@@ -2283,21 +2283,24 @@ void CanvasRenderingContext2D::drawFocusRing(const Path& path) |
if (!c) |
return; |
+ // These should match the style defined in html.css. |
+ Color focusRingColor = RenderTheme::theme().focusRingColor(); |
+ const int focusRingWidth = 5; |
+ const int focusRingOutline = 0; |
+ |
+ // We need to add focusRingWidth to dirtyRect. |
+ StrokeData strokeData; |
+ strokeData.setThickness(focusRingWidth); |
+ |
FloatRect dirtyRect; |
- if (!computeDirtyRect(path.boundingRect(), &dirtyRect)) |
+ if (!computeDirtyRect(path.strokeBoundingRect(strokeData), &dirtyRect)) |
return; |
c->save(); |
c->setAlphaAsFloat(1.0); |
c->clearShadow(); |
c->setCompositeOperation(CompositeSourceOver, blink::WebBlendModeNormal); |
- |
- // These should match the style defined in html.css. |
- Color focusRingColor = RenderTheme::theme().focusRingColor(); |
- const int focusRingWidth = 5; |
- const int focusRingOutline = 0; |
c->drawFocusRing(path, focusRingWidth, focusRingOutline, focusRingColor); |
- |
c->restore(); |
didDraw(dirtyRect); |