Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1336)

Unified Diff: Source/core/rendering/RenderLayerModelObject.cpp

Issue 17471008: Rework compositor touch hit testing (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Various fixes and test additions Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(&currentCompositedLayer, adjustedLayerOffset);
+
+ RenderObject::addLayerHitTestRects(rects, currentCompositedLayer, adjustedLayerOffset);
+}
+
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698