| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/input/synthetic_smooth_scroll_gesture.h" | 5 #include "content/browser/renderer_host/input/synthetic_smooth_scroll_gesture.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "content/common/input/input_event.h" | 9 #include "content/common/input/input_event.h" |
| 10 #include "ui/events/latency_info.h" | 10 #include "ui/events/latency_info.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 | 43 |
| 44 return (state_ == DONE) ? SyntheticGesture::GESTURE_FINISHED | 44 return (state_ == DONE) ? SyntheticGesture::GESTURE_FINISHED |
| 45 : SyntheticGesture::GESTURE_RUNNING; | 45 : SyntheticGesture::GESTURE_RUNNING; |
| 46 } | 46 } |
| 47 | 47 |
| 48 void SyntheticSmoothScrollGesture::ForwardTouchInputEvents( | 48 void SyntheticSmoothScrollGesture::ForwardTouchInputEvents( |
| 49 const base::TimeDelta& interval, SyntheticGestureTarget* target) { | 49 const base::TimeDelta& interval, SyntheticGestureTarget* target) { |
| 50 switch (state_) { | 50 switch (state_) { |
| 51 case STARTED: | 51 case STARTED: |
| 52 // Check for an early finish. | 52 // Check for an early finish. |
| 53 if (HasScrolledEntireDistance()) { | 53 if (params_.distance == 0) { |
| 54 state_ = DONE; | 54 state_ = DONE; |
| 55 break; | 55 break; |
| 56 } | 56 } |
| 57 if (params_.distance > 0) |
| 58 params_.distance += target->GetTouchSlopInDips(); |
| 59 else |
| 60 params_.distance -= target->GetTouchSlopInDips(); |
| 57 touch_event_.PressPoint(params_.anchor.x(), current_y_); | 61 touch_event_.PressPoint(params_.anchor.x(), current_y_); |
| 58 ForwardTouchEvent(target); | 62 ForwardTouchEvent(target); |
| 59 state_ = MOVING; | 63 state_ = MOVING; |
| 60 break; | 64 break; |
| 61 case MOVING: | 65 case MOVING: |
| 62 current_y_ += GetPositionDelta(interval); | 66 current_y_ += GetPositionDelta(interval); |
| 63 touch_event_.MovePoint(0, params_.anchor.x(), current_y_); | 67 touch_event_.MovePoint(0, params_.anchor.x(), current_y_); |
| 64 ForwardTouchEvent(target); | 68 ForwardTouchEvent(target); |
| 65 | 69 |
| 66 if (HasScrolledEntireDistance()) | 70 if (HasScrolledEntireDistance()) |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 params_.distance > 0 ? remaining_distance : -remaining_distance; | 160 params_.distance > 0 ? remaining_distance : -remaining_distance; |
| 157 DCHECK_GE(abs_remaining_distance, 0); | 161 DCHECK_GE(abs_remaining_distance, 0); |
| 158 return abs_remaining_distance; | 162 return abs_remaining_distance; |
| 159 } | 163 } |
| 160 | 164 |
| 161 bool SyntheticSmoothScrollGesture::HasScrolledEntireDistance() const { | 165 bool SyntheticSmoothScrollGesture::HasScrolledEntireDistance() const { |
| 162 return ComputeAbsoluteRemainingDistance() == 0; | 166 return ComputeAbsoluteRemainingDistance() == 0; |
| 163 } | 167 } |
| 164 | 168 |
| 165 } // namespace content | 169 } // namespace content |
| OLD | NEW |