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

Side by Side Diff: cc/layers/viewport.cc

Issue 1236643003: [Android] Suppress overscroll for unscrollable axes in the browser (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove old test Created 5 years, 5 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 unified diff | Download patch
« no previous file with comments | « no previous file | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layers/viewport.h" 5 #include "cc/layers/viewport.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "cc/input/top_controls_manager.h" 8 #include "cc/input/top_controls_manager.h"
9 #include "cc/trees/layer_tree_host_impl.h" 9 #include "cc/trees/layer_tree_host_impl.h"
10 #include "cc/trees/layer_tree_impl.h" 10 #include "cc/trees/layer_tree_impl.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 151
152 gfx::Vector2dF Viewport::AdjustOverscroll(const gfx::Vector2dF& delta) const { 152 gfx::Vector2dF Viewport::AdjustOverscroll(const gfx::Vector2dF& delta) const {
153 const float kEpsilon = 0.1f; 153 const float kEpsilon = 0.1f;
154 gfx::Vector2dF adjusted = delta; 154 gfx::Vector2dF adjusted = delta;
155 155
156 if (std::abs(adjusted.x()) < kEpsilon) 156 if (std::abs(adjusted.x()) < kEpsilon)
157 adjusted.set_x(0.0f); 157 adjusted.set_x(0.0f);
158 if (std::abs(adjusted.y()) < kEpsilon) 158 if (std::abs(adjusted.y()) < kEpsilon)
159 adjusted.set_y(0.0f); 159 adjusted.set_y(0.0f);
160 160
161 // Disable overscroll on axes which are impossible to scroll.
162 if (host_impl_->settings().report_overscroll_only_for_scrollable_axes) {
163 if (std::abs(MaxTotalScrollOffset().x()) <= kEpsilon ||
164 !InnerScrollLayer()->user_scrollable_horizontal())
165 adjusted.set_x(0.0f);
166 if (std::abs(MaxTotalScrollOffset().y()) <= kEpsilon ||
167 !InnerScrollLayer()->user_scrollable_vertical())
168 adjusted.set_y(0.0f);
169 }
170
171 return adjusted; 161 return adjusted;
172 } 162 }
173 163
174 gfx::ScrollOffset Viewport::MaxTotalScrollOffset() const { 164 gfx::ScrollOffset Viewport::MaxTotalScrollOffset() const {
175 gfx::ScrollOffset offset; 165 gfx::ScrollOffset offset;
176 166
177 offset += InnerScrollLayer()->MaxScrollOffset(); 167 offset += InnerScrollLayer()->MaxScrollOffset();
178 168
179 if (OuterScrollLayer()) 169 if (OuterScrollLayer())
180 offset += OuterScrollLayer()->MaxScrollOffset(); 170 offset += OuterScrollLayer()->MaxScrollOffset();
(...skipping 14 matching lines...) Expand all
195 185
196 LayerImpl* Viewport::InnerScrollLayer() const { 186 LayerImpl* Viewport::InnerScrollLayer() const {
197 return host_impl_->InnerViewportScrollLayer(); 187 return host_impl_->InnerViewportScrollLayer();
198 } 188 }
199 189
200 LayerImpl* Viewport::OuterScrollLayer() const { 190 LayerImpl* Viewport::OuterScrollLayer() const {
201 return host_impl_->OuterViewportScrollLayer(); 191 return host_impl_->OuterViewportScrollLayer();
202 } 192 }
203 193
204 } // namespace cc 194 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698