Index: content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc |
diff --git a/content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc b/content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc |
index 2ed8452992c33aad6f3cab3c274a059ed0cef634..66900a8539eb4312239129a6dfefd934a6e8744c 100644 |
--- a/content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc |
+++ b/content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc |
@@ -149,6 +149,8 @@ void SyntheticSmoothMoveGesture::ForwardTouchInputEvents( |
void SyntheticSmoothMoveGesture::ForwardMouseWheelInputEvents( |
const base::TimeTicks& timestamp, |
SyntheticGestureTarget* target) { |
+ blink::WebMouseWheelEvent::Phase phase = |
+ blink::WebMouseWheelEvent::kPhaseChanged; |
switch (state_) { |
case STARTED: |
if (MoveIsNoOp()) { |
@@ -157,6 +159,7 @@ void SyntheticSmoothMoveGesture::ForwardMouseWheelInputEvents( |
} |
ComputeNextMoveSegment(); |
state_ = MOVING; |
+ phase = blink::WebMouseWheelEvent::kPhaseBegan; |
// Fall through to forward the first event. |
case MOVING: { |
// Even though WebMouseWheelEvents take floating point deltas, |
@@ -170,7 +173,7 @@ void SyntheticSmoothMoveGesture::ForwardMouseWheelInputEvents( |
gfx::Vector2d delta_discrete = |
FloorTowardZero(current_move_segment_total_delta - |
current_move_segment_total_delta_discrete_); |
- ForwardMouseWheelEvent(target, delta_discrete, event_timestamp); |
+ ForwardMouseWheelEvent(target, delta_discrete, phase, event_timestamp); |
current_move_segment_total_delta_discrete_ += delta_discrete; |
if (FinishedCurrentMoveSegment(event_timestamp)) { |
@@ -180,6 +183,9 @@ void SyntheticSmoothMoveGesture::ForwardMouseWheelInputEvents( |
ForwardMouseWheelInputEvents(timestamp, target); |
} else { |
state_ = DONE; |
+ ForwardMouseWheelEvent(target, gfx::Vector2d(), |
+ blink::WebMouseWheelEvent::kPhaseEnded, |
+ event_timestamp); |
} |
} |
} break; |
@@ -240,6 +246,7 @@ void SyntheticSmoothMoveGesture::ForwardMouseClickInputEvents( |
void SyntheticSmoothMoveGesture::ForwardMouseWheelEvent( |
SyntheticGestureTarget* target, |
const gfx::Vector2dF& delta, |
+ const blink::WebMouseWheelEvent::Phase phase, |
const base::TimeTicks& timestamp) const { |
blink::WebMouseWheelEvent mouse_wheel_event = |
SyntheticWebMouseWheelEventBuilder::Build(0, 0, delta.x(), delta.y(), 0, |
@@ -248,6 +255,7 @@ void SyntheticSmoothMoveGesture::ForwardMouseWheelEvent( |
mouse_wheel_event.SetPositionInWidget( |
current_move_segment_start_position_.x(), |
current_move_segment_start_position_.y()); |
+ mouse_wheel_event.phase = phase; |
mouse_wheel_event.SetTimeStampSeconds(ConvertTimestampToSeconds(timestamp)); |