OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/renderer_host/overscroll_controller.h" | 5 #include "content/browser/renderer_host/overscroll_controller.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "content/browser/renderer_host/overscroll_controller_delegate.h" | 8 #include "content/browser/renderer_host/overscroll_controller_delegate.h" |
9 #include "content/public/browser/overscroll_configuration.h" | 9 #include "content/public/browser/overscroll_configuration.h" |
10 #include "content/public/common/content_switches_util.h" | |
10 | 11 |
11 using WebKit::WebInputEvent; | 12 using WebKit::WebInputEvent; |
12 | 13 |
13 namespace content { | 14 namespace content { |
14 | 15 |
15 OverscrollController::OverscrollController() | 16 OverscrollController::OverscrollController() |
16 : overscroll_mode_(OVERSCROLL_NONE), | 17 : overscroll_mode_(OVERSCROLL_NONE), |
17 scroll_state_(STATE_UNKNOWN), | 18 scroll_state_(STATE_UNKNOWN), |
18 overscroll_delta_x_(0.f), | 19 overscroll_delta_x_(0.f), |
19 overscroll_delta_y_(0.f), | 20 overscroll_delta_y_(0.f), |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
293 // to make sure that subsequent scroll events go through to the page first. | 294 // to make sure that subsequent scroll events go through to the page first. |
294 OverscrollMode new_mode = OVERSCROLL_NONE; | 295 OverscrollMode new_mode = OVERSCROLL_NONE; |
295 const float kMinRatio = 2.5; | 296 const float kMinRatio = 2.5; |
296 if (fabs(overscroll_delta_x_) > horiz_threshold && | 297 if (fabs(overscroll_delta_x_) > horiz_threshold && |
297 fabs(overscroll_delta_x_) > fabs(overscroll_delta_y_) * kMinRatio) | 298 fabs(overscroll_delta_x_) > fabs(overscroll_delta_y_) * kMinRatio) |
298 new_mode = overscroll_delta_x_ > 0.f ? OVERSCROLL_EAST : OVERSCROLL_WEST; | 299 new_mode = overscroll_delta_x_ > 0.f ? OVERSCROLL_EAST : OVERSCROLL_WEST; |
299 else if (fabs(overscroll_delta_y_) > vert_threshold && | 300 else if (fabs(overscroll_delta_y_) > vert_threshold && |
300 fabs(overscroll_delta_y_) > fabs(overscroll_delta_x_) * kMinRatio) | 301 fabs(overscroll_delta_y_) > fabs(overscroll_delta_x_) * kMinRatio) |
301 new_mode = overscroll_delta_y_ > 0.f ? OVERSCROLL_SOUTH : OVERSCROLL_NORTH; | 302 new_mode = overscroll_delta_y_ > 0.f ? OVERSCROLL_SOUTH : OVERSCROLL_NORTH; |
302 | 303 |
304 // The vertical oversrcoll currently does not have any UX effects other then | |
305 // for the scroll end effect, so testing if it is enabled. | |
306 if ((new_mode == OVERSCROLL_SOUTH || new_mode == OVERSCROLL_NORTH) && | |
307 !switches::IsScrollEndEffectEnabled()) | |
308 new_mode = OVERSCROLL_NONE; | |
sadrul
2013/10/30 16:06:50
This should be a separate CL from the content_swit
rharrison
2013/10/30 18:16:26
Done.
| |
309 | |
303 if (overscroll_mode_ == OVERSCROLL_NONE) | 310 if (overscroll_mode_ == OVERSCROLL_NONE) |
304 SetOverscrollMode(new_mode); | 311 SetOverscrollMode(new_mode); |
305 else if (new_mode != overscroll_mode_) | 312 else if (new_mode != overscroll_mode_) |
306 SetOverscrollMode(OVERSCROLL_NONE); | 313 SetOverscrollMode(OVERSCROLL_NONE); |
307 | 314 |
308 if (overscroll_mode_ == OVERSCROLL_NONE) | 315 if (overscroll_mode_ == OVERSCROLL_NONE) |
309 return; | 316 return; |
310 | 317 |
311 // Tell the delegate about the overscroll update so that it can update | 318 // Tell the delegate about the overscroll update so that it can update |
312 // the display accordingly (e.g. show history preview etc.). | 319 // the display accordingly (e.g. show history preview etc.). |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
350 overscroll_mode_ = mode; | 357 overscroll_mode_ = mode; |
351 if (overscroll_mode_ == OVERSCROLL_NONE) | 358 if (overscroll_mode_ == OVERSCROLL_NONE) |
352 overscroll_delta_x_ = overscroll_delta_y_ = 0.f; | 359 overscroll_delta_x_ = overscroll_delta_y_ = 0.f; |
353 else | 360 else |
354 scroll_state_ = STATE_OVERSCROLLING; | 361 scroll_state_ = STATE_OVERSCROLLING; |
355 if (delegate_) | 362 if (delegate_) |
356 delegate_->OnOverscrollModeChange(old_mode, overscroll_mode_); | 363 delegate_->OnOverscrollModeChange(old_mode, overscroll_mode_); |
357 } | 364 } |
358 | 365 |
359 } // namespace content | 366 } // namespace content |
OLD | NEW |