Skip to content

Commit

Permalink
Fix display of wheel event listeners on a page.
Browse files Browse the repository at this point in the history
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}
  • Loading branch information
dtapuska authored and Commit bot committed Mar 18, 2016
1 parent ad0d763 commit 8f35ce5
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 14 deletions.
26 changes: 13 additions & 13 deletions cc/debug/debug_rect_history.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
1 change: 0 additions & 1 deletion cc/debug/debug_rect_history.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 8f35ce5

Please sign in to comment.