Index: Source/WebCore/rendering/RenderInline.cpp |
=================================================================== |
--- Source/WebCore/rendering/RenderInline.cpp (revision 145114) |
+++ Source/WebCore/rendering/RenderInline.cpp (working copy) |
@@ -1365,7 +1365,7 @@ |
repaint(); |
} |
-void RenderInline::addFocusRingRects(Vector<IntRect>& rects, const LayoutPoint& additionalOffset) |
+void RenderInline::addFocusRingRects(Vector<IntRect>& rects, const LayoutPoint& additionalOffset, const RenderLayerModelObject* paintContainer) |
{ |
AbsoluteRectsGeneratorContext context(rects, additionalOffset); |
generateLineBoxRects(context); |
@@ -1375,22 +1375,22 @@ |
FloatPoint pos(additionalOffset); |
// FIXME: This doesn't work correctly with transforms. |
if (curr->hasLayer()) |
- pos = curr->localToAbsolute(); |
+ pos = curr->localToContainerPoint(FloatPoint(), paintContainer); |
else if (curr->isBox()) |
pos.move(toRenderBox(curr)->locationOffset()); |
- curr->addFocusRingRects(rects, flooredIntPoint(pos)); |
+ curr->addFocusRingRects(rects, flooredIntPoint(pos), paintContainer); |
} |
} |
if (continuation()) { |
if (continuation()->isInline()) |
- continuation()->addFocusRingRects(rects, flooredLayoutPoint(additionalOffset + continuation()->containingBlock()->location() - containingBlock()->location())); |
+ continuation()->addFocusRingRects(rects, flooredLayoutPoint(additionalOffset + continuation()->containingBlock()->location() - containingBlock()->location()), paintContainer); |
else |
- continuation()->addFocusRingRects(rects, flooredLayoutPoint(additionalOffset + toRenderBox(continuation())->location() - containingBlock()->location())); |
+ continuation()->addFocusRingRects(rects, flooredLayoutPoint(additionalOffset + toRenderBox(continuation())->location() - containingBlock()->location()), paintContainer); |
} |
} |
-void RenderInline::paintOutline(GraphicsContext* graphicsContext, const LayoutPoint& paintOffset) |
+void RenderInline::paintOutline(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
{ |
if (!hasOutline()) |
return; |
@@ -1399,10 +1399,11 @@ |
if (styleToUse->outlineStyleIsAuto() || hasOutlineAnnotation()) { |
if (!theme()->supportsFocusRing(styleToUse)) { |
// Only paint the focus ring by hand if the theme isn't able to draw the focus ring. |
- paintFocusRing(graphicsContext, paintOffset, styleToUse); |
+ paintFocusRing(paintInfo, paintOffset, styleToUse); |
} |
} |
+ GraphicsContext* graphicsContext = paintInfo.context; |
if (graphicsContext->paintingDisabled()) |
return; |