Index: Source/core/rendering/RenderLayerModelObject.cpp |
diff --git a/Source/core/rendering/RenderLayerModelObject.cpp b/Source/core/rendering/RenderLayerModelObject.cpp |
index 6c11f67c8c8a813390bee8056206c73c88807fec..041be48338ebf237dc6387e8880d869342ee6b03 100644 |
--- a/Source/core/rendering/RenderLayerModelObject.cpp |
+++ b/Source/core/rendering/RenderLayerModelObject.cpp |
@@ -26,6 +26,7 @@ |
#include "core/rendering/RenderLayerModelObject.h" |
#include "core/rendering/RenderLayer.h" |
+#include "core/rendering/RenderLayerBacking.h" |
#include "core/rendering/RenderView.h" |
using namespace std; |
@@ -189,5 +190,18 @@ void RenderLayerModelObject::reportMemoryUsage(MemoryObjectInfo* memoryObjectInf |
info.addWeakPointer(m_layer); |
} |
+void RenderLayerModelObject::addLayerHitTestRects(LayerHitTestRects& rects, const RenderLayer* currentCompositedLayer, const LayoutPoint& layerOffset) const |
+{ |
+ // If we have a self painting layer then our current layer/offset is irrelevant. |
+ // TODO: I don't think this is quite the right approach in the general case. |
+ // Rather than update the offset, we probably need to map quads from one layer space |
+ // to another, taking into account transforms (eg. scale) and clips (eg. overflow). |
+ LayoutPoint adjustedLayerOffset = layerOffset; |
+ if (hasSelfPaintingLayer()) |
+ enclosingCompositedLayerAndOffset(¤tCompositedLayer, adjustedLayerOffset); |
+ |
+ RenderObject::addLayerHitTestRects(rects, currentCompositedLayer, adjustedLayerOffset); |
+} |
+ |
} // namespace WebCore |