Index: Source/core/rendering/RenderInline.cpp |
diff --git a/Source/core/rendering/RenderInline.cpp b/Source/core/rendering/RenderInline.cpp |
index 81a8bdc8c24e4c956c7f3216b8e9951949481428..7e342c8a0bb742bd46b1976631704887a0fdadd1 100644 |
--- a/Source/core/rendering/RenderInline.cpp |
+++ b/Source/core/rendering/RenderInline.cpp |
@@ -1383,6 +1383,33 @@ void RenderInline::addFocusRingRects(Vector<IntRect>& rects, const LayoutPoint& |
} |
} |
+namespace { |
+ |
+class AbsoluteLayoutRectsGeneratorContext { |
+public: |
+ AbsoluteLayoutRectsGeneratorContext(Vector<LayoutRect>& rects, const LayoutPoint& accumulatedOffset) |
+ : m_rects(rects) |
+ , m_accumulatedOffset(accumulatedOffset) { } |
+ |
+ void operator()(const FloatRect& rect) |
+ { |
+ LayoutRect layoutRect(rect); |
+ layoutRect.move(m_accumulatedOffset.x(), m_accumulatedOffset.y()); |
+ m_rects.append(layoutRect); |
+ } |
+private: |
+ Vector<LayoutRect>& m_rects; |
+ const LayoutPoint& m_accumulatedOffset; |
+}; |
+ |
+} |
+ |
+void RenderInline::computeSelfHitTestRects(Vector<LayoutRect>& rects, const LayoutPoint& layerOffset) const |
+{ |
+ AbsoluteLayoutRectsGeneratorContext context(rects, layerOffset); |
+ generateLineBoxRects(context); |
+} |
+ |
void RenderInline::paintOutline(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
{ |
if (!hasOutline()) |