diff options
author | dtapuska <dtapuska@chromium.org> | 2016-03-18 12:36:34 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-18 19:39:05 +0000 |
commit | 8f35ce554d594f2069d7f4515602e3fb6a5fc5a9 (patch) | |
tree | aa9b52dc56e6792ec3100c962fbc3758681770a1 /cc | |
parent | ad0d763c39a8d2666fecf418bf6c47c5c8a44566 (diff) | |
download | chromium_src-8f35ce554d594f2069d7f4515602e3fb6a5fc5a9.zip chromium_src-8f35ce554d594f2069d7f4515602e3fb6a5fc5a9.tar.gz chromium_src-8f35ce554d594f2069d7f4515602e3fb6a5fc5a9.tar.bz2 |
Fix display of wheel event listeners on a page.
Fields were getting duplicated for scrollbars. Mark the entire
inner viewport as blocked on scroll if we have a wheel listener
we don't need to iterate the tree.
BUG=595591
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1810363002
Cr-Commit-Position: refs/heads/master@{#382053}
Diffstat (limited to 'cc')
-rw-r--r-- | cc/debug/debug_rect_history.cc | 26 | ||||
-rw-r--r-- | cc/debug/debug_rect_history.h | 1 |
2 files changed, 13 insertions, 14 deletions
diff --git a/cc/debug/debug_rect_history.cc b/cc/debug/debug_rect_history.cc index 80c58383..cc8d123 100644 --- a/cc/debug/debug_rect_history.cc +++ b/cc/debug/debug_rect_history.cc @@ -174,26 +174,26 @@ void DebugRectHistory::SaveTouchEventHandlerRectsCallback(LayerImpl* layer) { } } -void DebugRectHistory::SaveWheelEventHandlerRects(LayerImpl* layer) { - LayerTreeHostCommon::CallFunctionForSubtree(layer, [this](LayerImpl* layer) { - SaveWheelEventHandlerRectsCallback(layer); - }); -} - -void DebugRectHistory::SaveWheelEventHandlerRectsCallback(LayerImpl* layer) { +void DebugRectHistory::SaveWheelEventHandlerRects(LayerImpl* root_layer) { EventListenerProperties event_properties = - layer->layer_tree_impl()->event_listener_properties( + root_layer->layer_tree_impl()->event_listener_properties( EventListenerClass::kMouseWheel); if (event_properties == EventListenerProperties::kNone || - (layer->layer_tree_impl()->settings().use_mouse_wheel_gestures && + (root_layer->layer_tree_impl()->settings().use_mouse_wheel_gestures && event_properties == EventListenerProperties::kPassive)) { return; } - debug_rects_.push_back( - DebugRect(WHEEL_EVENT_HANDLER_RECT_TYPE, - MathUtil::MapEnclosingClippedRect(layer->ScreenSpaceTransform(), - gfx::Rect(layer->bounds())))); + // Since the wheel event handlers property is on the entire layer tree just + // mark inner viewport if have listeners. + LayerImpl* inner_viewport = + root_layer->layer_tree_impl()->InnerViewportScrollLayer(); + if (!inner_viewport) + return; + debug_rects_.push_back(DebugRect( + WHEEL_EVENT_HANDLER_RECT_TYPE, + MathUtil::MapEnclosingClippedRect(inner_viewport->ScreenSpaceTransform(), + gfx::Rect(inner_viewport->bounds())))); } void DebugRectHistory::SaveScrollEventHandlerRects(LayerImpl* layer) { diff --git a/cc/debug/debug_rect_history.h b/cc/debug/debug_rect_history.h index bea3467..0057817 100644 --- a/cc/debug/debug_rect_history.h +++ b/cc/debug/debug_rect_history.h @@ -87,7 +87,6 @@ class DebugRectHistory { void SaveTouchEventHandlerRects(LayerImpl* layer); void SaveTouchEventHandlerRectsCallback(LayerImpl* layer); void SaveWheelEventHandlerRects(LayerImpl* layer); - void SaveWheelEventHandlerRectsCallback(LayerImpl* layer); void SaveScrollEventHandlerRects(LayerImpl* layer); void SaveScrollEventHandlerRectsCallback(LayerImpl* layer); void SaveNonFastScrollableRects(LayerImpl* layer); |