| 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;
|
|
|
|
|