Index: content/browser/android/content_view_core_impl.cc |
diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc |
index 382db082ec38eaec66f344b737c010195ad0ca3a..795caa232b8c6a2c0e977b893504bb7bf9a633db 100644 |
--- a/content/browser/android/content_view_core_impl.cc |
+++ b/content/browser/android/content_view_core_impl.cc |
@@ -577,8 +577,10 @@ void ContentViewCoreImpl::OnGestureEventAck(const blink::WebGestureEvent& event, |
switch (event.type) { |
case WebInputEvent::GestureFlingStart: |
if (ack_result == INPUT_EVENT_ACK_STATE_CONSUMED) { |
+ // The view expects the fling velocity in pixels/s. |
Java_ContentViewCore_onFlingStartEventConsumed(env, j_obj.obj(), |
- event.data.flingStart.velocityX, event.data.flingStart.velocityY); |
+ event.data.flingStart.velocityX * GetDpiScale(), |
+ event.data.flingStart.velocityY * GetDpiScale()); |
} else { |
// If a scroll ends with a fling, a SCROLL_END event is never sent. |
// However, if that fling went unconsumed, we still need to let the |
@@ -587,8 +589,10 @@ void ContentViewCoreImpl::OnGestureEventAck(const blink::WebGestureEvent& event, |
} |
if (ack_result == INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS) { |
+ // The view expects the fling velocity in pixels/s. |
Java_ContentViewCore_onFlingStartEventHadNoConsumer(env, j_obj.obj(), |
- event.data.flingStart.velocityX, event.data.flingStart.velocityY); |
+ event.data.flingStart.velocityX * GetDpiScale(), |
+ event.data.flingStart.velocityY * GetDpiScale()); |
} |
break; |
case WebInputEvent::GestureFlingCancel: |
@@ -636,8 +640,8 @@ bool ContentViewCoreImpl::FilterInputEvent(const blink::WebInputEvent& event) { |
return Java_ContentViewCore_filterTapOrPressEvent(env, |
j_obj.obj(), |
gesture_type, |
- gesture.x, |
- gesture.y); |
+ gesture.x * GetDpiScale(), |
+ gesture.y * GetDpiScale()); |
} |
bool ContentViewCoreImpl::HasFocus() { |