| 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/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "content/browser/renderer_host/overscroll_controller_delegate.h" | 9 #include "content/browser/renderer_host/overscroll_controller_delegate.h" |
| 10 #include "content/public/browser/overscroll_configuration.h" | 10 #include "content/public/browser/overscroll_configuration.h" |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 const blink::WebGestureEvent& gesture = | 25 const blink::WebGestureEvent& gesture = |
| 26 static_cast<const blink::WebGestureEvent&>(event); | 26 static_cast<const blink::WebGestureEvent&>(event); |
| 27 return gesture.source_device == blink::kWebGestureDeviceTouchpad; | 27 return gesture.source_device == blink::kWebGestureDeviceTouchpad; |
| 28 } | 28 } |
| 29 | 29 |
| 30 } // namespace | 30 } // namespace |
| 31 | 31 |
| 32 namespace content { | 32 namespace content { |
| 33 | 33 |
| 34 OverscrollController::OverscrollController() | 34 OverscrollController::OverscrollController() |
| 35 : overscroll_mode_(OVERSCROLL_NONE), | 35 : scroll_state_(STATE_UNKNOWN), |
| 36 scroll_state_(STATE_UNKNOWN), | 36 overscroll_mode_(OVERSCROLL_NONE), |
| 37 overscroll_delta_x_(0.f), | 37 overscroll_delta_x_(0.f), |
| 38 overscroll_delta_y_(0.f), | 38 overscroll_delta_y_(0.f), |
| 39 delegate_(NULL) {} | 39 delegate_(NULL) {} |
| 40 | 40 |
| 41 OverscrollController::~OverscrollController() { | 41 OverscrollController::~OverscrollController() { |
| 42 } | 42 } |
| 43 | 43 |
| 44 bool OverscrollController::ShouldProcessEvent( | 44 bool OverscrollController::ShouldProcessEvent( |
| 45 const blink::WebInputEvent& event) { | 45 const blink::WebInputEvent& event) { |
| 46 switch (event.GetType()) { | 46 switch (event.GetType()) { |
| 47 case blink::WebInputEvent::kMouseWheel: | 47 case blink::WebInputEvent::kMouseWheel: |
| 48 return false; | 48 return false; |
| 49 case blink::WebInputEvent::kGestureScrollBegin: | 49 case blink::WebInputEvent::kGestureScrollBegin: |
| 50 case blink::WebInputEvent::kGestureScrollUpdate: | 50 case blink::WebInputEvent::kGestureScrollUpdate: |
| 51 case blink::WebInputEvent::kGestureScrollEnd: { | 51 case blink::WebInputEvent::kGestureScrollEnd: { |
| 52 const blink::WebGestureEvent& gesture = | 52 const blink::WebGestureEvent& gesture = |
| 53 static_cast<const blink::WebGestureEvent&>(event); | 53 static_cast<const blink::WebGestureEvent&>(event); |
| 54 |
| 55 // GestureScrollBegin and GestureScrollEnd events are created to wrap |
| 56 // individual resent GestureScrollUpdates from a plugin. Hence these |
| 57 // should not be used to indicate the beginning/end of the overscroll. |
| 58 // TODO(mcnee): When we remove BrowserPlugin, delete this code. |
| 59 // See crbug.com/533069 |
| 60 if (gesture.resending_plugin_id != -1 && |
| 61 event.GetType() != blink::WebInputEvent::kGestureScrollUpdate) |
| 62 return false; |
| 63 |
| 54 blink::WebGestureEvent::ScrollUnits scrollUnits; | 64 blink::WebGestureEvent::ScrollUnits scrollUnits; |
| 55 switch (event.GetType()) { | 65 switch (event.GetType()) { |
| 56 case blink::WebInputEvent::kGestureScrollBegin: | 66 case blink::WebInputEvent::kGestureScrollBegin: |
| 57 scrollUnits = gesture.data.scroll_begin.delta_hint_units; | 67 scrollUnits = gesture.data.scroll_begin.delta_hint_units; |
| 58 break; | 68 break; |
| 59 case blink::WebInputEvent::kGestureScrollUpdate: | 69 case blink::WebInputEvent::kGestureScrollUpdate: |
| 60 scrollUnits = gesture.data.scroll_update.delta_units; | 70 scrollUnits = gesture.data.scroll_update.delta_units; |
| 61 break; | 71 break; |
| 62 case blink::WebInputEvent::kGestureScrollEnd: | 72 case blink::WebInputEvent::kGestureScrollEnd: |
| 63 scrollUnits = gesture.data.scroll_end.delta_units; | 73 scrollUnits = gesture.data.scroll_end.delta_units; |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 overscroll_mode_ = mode; | 437 overscroll_mode_ = mode; |
| 428 if (overscroll_mode_ == OVERSCROLL_NONE) | 438 if (overscroll_mode_ == OVERSCROLL_NONE) |
| 429 overscroll_delta_x_ = overscroll_delta_y_ = 0.f; | 439 overscroll_delta_x_ = overscroll_delta_y_ = 0.f; |
| 430 else | 440 else |
| 431 scroll_state_ = STATE_OVERSCROLLING; | 441 scroll_state_ = STATE_OVERSCROLLING; |
| 432 if (delegate_) | 442 if (delegate_) |
| 433 delegate_->OnOverscrollModeChange(old_mode, overscroll_mode_, source); | 443 delegate_->OnOverscrollModeChange(old_mode, overscroll_mode_, source); |
| 434 } | 444 } |
| 435 | 445 |
| 436 } // namespace content | 446 } // namespace content |
| OLD | NEW |