Index: cc/layer_tree_host_impl.cc |
diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc |
index f6b753915070bb426cf9fcb728db7a9f9d36ec29..f5ca6aa86132aadfe72eb4af65a1733f35aa7522 100644 |
--- a/cc/layer_tree_host_impl.cc |
+++ b/cc/layer_tree_host_impl.cc |
@@ -357,10 +357,13 @@ bool LayerTreeHostImpl::haveTouchEventHandlersAt(const gfx::Point& viewportPoint |
// First find out which layer was hit from the saved list of visible layers |
// in the most recent frame. |
- LayerImpl* layerImplHitByPointInTouchHandlerRegion = LayerTreeHostCommon::findLayerThatIsHitByPointInTouchHandlerRegion(deviceViewportPoint, m_renderSurfaceLayerList); |
+ LayerImpl* layerImpl = LayerTreeHostCommon::findLayerThatIsHitByPoint(deviceViewportPoint, m_renderSurfaceLayerList); |
- if (layerImplHitByPointInTouchHandlerRegion) |
- return true; |
+ // Walk up the hierarchy and look for a layer with a touch event handler region that the given point hits. |
+ for (; layerImpl; layerImpl = layerImpl->parent()) { |
+ if (LayerTreeHostCommon::layerHasTouchEventHandlersAt(deviceViewportPoint,layerImpl)) |
+ return true; |
+ } |
return false; |
} |