Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2752)

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 1365343002: Ensure the viewport is always represented by the inner viewport layer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix more tests. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..44659f2f271fb4ae0c17e1e3d5d07fd995afda48 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -499,8 +499,7 @@ bool LayerTreeHostImpl::IsCurrentlyScrollingRoot() const {
LayerImpl* scrolling_layer = CurrentlyScrollingLayer();
if (!scrolling_layer)
return false;
- return scrolling_layer == InnerViewportScrollLayer() ||
- scrolling_layer == OuterViewportScrollLayer();
+ return scrolling_layer == InnerViewportScrollLayer();
}
bool LayerTreeHostImpl::IsCurrentlyScrollingLayerAt(
@@ -2373,9 +2372,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 +2467,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 +2745,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 +2812,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 +2909,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();
}
« no previous file with comments | « cc/trees/layer_tree_host.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698