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

Unified Diff: content/browser/renderer_host/input/synthetic_smooth_move_gesture.cc

Issue 2907053004: GSB uses delta_hints to calculate scrolling chain. (Closed)
Patch Set: Merge branch 'master' into GSB_checks_delta_hints Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
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));

Powered by Google App Engine
This is Rietveld 408576698