Chromium Code Reviews| Index: cc/trees/layer_tree_host_impl.cc |
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
| index b785dbb831ab272dfe7ac3d24318799177b0bdb2..6ca1cf9810ff1b20442dbf473d0a15895b6afefd 100644 |
| --- a/cc/trees/layer_tree_host_impl.cc |
| +++ b/cc/trees/layer_tree_host_impl.cc |
| @@ -496,11 +496,7 @@ void LayerTreeHostImpl::SetNeedsAnimateInput() { |
| } |
| bool LayerTreeHostImpl::IsCurrentlyScrollingRoot() const { |
| - LayerImpl* scrolling_layer = CurrentlyScrollingLayer(); |
| - if (!scrolling_layer) |
| - return false; |
| - return scrolling_layer == InnerViewportScrollLayer() || |
| - scrolling_layer == OuterViewportScrollLayer(); |
| + return CurrentlyScrollingLayer() == InnerViewportScrollLayer(); |
|
bokan
2015/09/25 17:37:10
Could you keep the NULL check? If this ever gets c
tdresser
2015/09/25 17:41:43
Done.
|
| } |
| bool LayerTreeHostImpl::IsCurrentlyScrollingLayerAt( |
| @@ -2373,9 +2369,11 @@ LayerImpl* LayerTreeHostImpl::FindScrollLayerForDeviceViewportPoint( |
| // notifications while preventing scroll updates from being unintentionally |
| // forwarded to the main thread. |
| if (!potentially_scrolling_layer_impl) |
| - potentially_scrolling_layer_impl = OuterViewportScrollLayer() |
| - ? OuterViewportScrollLayer() |
| - : InnerViewportScrollLayer(); |
| + potentially_scrolling_layer_impl = InnerViewportScrollLayer(); |
| + |
| + // The inner viewport layer represents the viewport. |
| + if (potentially_scrolling_layer_impl == OuterViewportScrollLayer()) |
| + potentially_scrolling_layer_impl = InnerViewportScrollLayer(); |
| return potentially_scrolling_layer_impl; |
| } |
| @@ -2466,8 +2464,9 @@ InputHandler::ScrollStatus LayerTreeHostImpl::ScrollAnimated( |
| if (scroll_status == SCROLL_STARTED) { |
| gfx::Vector2dF pending_delta = scroll_delta; |
| for (LayerImpl* layer_impl = CurrentlyScrollingLayer(); layer_impl; |
| - layer_impl = layer_impl->parent()) { |
| - if (!layer_impl->scrollable()) |
| + layer_impl = NextLayerInScrollOrder(layer_impl)) { |
| + // The inner viewport layer represents the viewport. |
| + if (!layer_impl->scrollable() || layer_impl == OuterViewportScrollLayer()) |
| continue; |
| gfx::ScrollOffset current_offset = layer_impl->CurrentScrollOffset(); |
| @@ -2743,10 +2742,10 @@ bool LayerTreeHostImpl::ScrollVerticallyByPage(const gfx::Point& viewport_point, |
| ScrollDirection direction) { |
| DCHECK(wheel_scrolling_); |
| - for (LayerImpl* layer_impl = CurrentlyScrollingLayer(); |
| - layer_impl; |
| - layer_impl = layer_impl->parent()) { |
| - if (!layer_impl->scrollable()) |
| + for (LayerImpl* layer_impl = CurrentlyScrollingLayer(); layer_impl; |
| + layer_impl = NextLayerInScrollOrder(layer_impl)) { |
| + // The inner viewport layer represents the viewport. |
| + if (!layer_impl->scrollable() || layer_impl == OuterViewportScrollLayer()) |
| continue; |
| if (!layer_impl->HasScrollbar(VERTICAL)) |
| @@ -2810,7 +2809,6 @@ InputHandler::ScrollStatus LayerTreeHostImpl::FlingScrollBegin() { |
| return SCROLL_IGNORED; |
| bool currently_scrolling_viewport = |
| - CurrentlyScrollingLayer() == OuterViewportScrollLayer() || |
| CurrentlyScrollingLayer() == InnerViewportScrollLayer(); |
| if (!wheel_scrolling_ && !currently_scrolling_viewport) { |
| // Allow the fling to lock to the first layer that moves after the initial |
| @@ -2908,13 +2906,8 @@ void LayerTreeHostImpl::PinchGestureBegin() { |
| pinch_gesture_active_ = true; |
| client_->RenewTreePriority(); |
| pinch_gesture_end_should_clear_scrolling_layer_ = !CurrentlyScrollingLayer(); |
| - if (active_tree_->OuterViewportScrollLayer()) { |
| - active_tree_->SetCurrentlyScrollingLayer( |
| - active_tree_->OuterViewportScrollLayer()); |
| - } else { |
| - active_tree_->SetCurrentlyScrollingLayer( |
| - active_tree_->InnerViewportScrollLayer()); |
| - } |
| + active_tree_->SetCurrentlyScrollingLayer( |
| + active_tree_->InnerViewportScrollLayer()); |
| top_controls_manager_->PinchBegin(); |
| } |