Index: cc/trees/layer_tree_impl.cc |
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
index cc096f827806aede1c62c63048a4afdb797c7cd4..f2c6a83f03049f49c2499b8c42e5eb855cb64e60 100644 |
--- a/cc/trees/layer_tree_impl.cc |
+++ b/cc/trees/layer_tree_impl.cc |
@@ -1755,8 +1755,9 @@ static void FindClosestMatchingLayer(const gfx::PointF& screen_space_point, |
} |
} |
-static bool ScrollsAnyDrawnRenderSurfaceLayerListMember(LayerImpl* layer) { |
- if (!layer->scrollable()) |
+static bool ScrollsOrScrollbarAnyDrawnRenderSurfaceLayerListMember( |
+ LayerImpl* layer) { |
+ if (!layer->scrollable() && !layer->ToScrollbarLayer()) |
return false; |
if (layer->layer_or_descendant_is_drawn()) |
return true; |
@@ -1772,25 +1773,27 @@ static bool ScrollsAnyDrawnRenderSurfaceLayerListMember(LayerImpl* layer) { |
return false; |
} |
-struct FindScrollingLayerFunctor { |
+struct FindScrollingLayerOrScrollbarLayerFunctor { |
bool operator()(LayerImpl* layer) const { |
- return ScrollsAnyDrawnRenderSurfaceLayerListMember(layer); |
+ return ScrollsOrScrollbarAnyDrawnRenderSurfaceLayerListMember(layer); |
} |
}; |
-LayerImpl* LayerTreeImpl::FindFirstScrollingLayerThatIsHitByPoint( |
+LayerImpl* |
+LayerTreeImpl::FindFirstScrollingLayerOrScrollbarLayerThatIsHitByPoint( |
const gfx::PointF& screen_space_point) { |
FindClosestMatchingLayerState state; |
- FindClosestMatchingLayer( |
- screen_space_point, root_layer(), FindScrollingLayerFunctor(), |
- property_trees_.transform_tree, property_trees_.clip_tree, &state); |
+ FindClosestMatchingLayer(screen_space_point, root_layer(), |
+ FindScrollingLayerOrScrollbarLayerFunctor(), |
+ property_trees_.transform_tree, |
+ property_trees_.clip_tree, &state); |
return state.closest_match; |
} |
struct HitTestVisibleScrollableOrTouchableFunctor { |
bool operator()(LayerImpl* layer) const { |
return layer->IsDrawnRenderSurfaceLayerListMember() || |
- ScrollsAnyDrawnRenderSurfaceLayerListMember(layer) || |
+ ScrollsOrScrollbarAnyDrawnRenderSurfaceLayerListMember(layer) || |
!layer->touch_event_handler_region().IsEmpty(); |
} |
}; |