Commit 22301f57 authored by jdduke@chromium.org's avatar jdduke@chromium.org

[Android] Always use pixels for gestures handled in ContentViewCore

There were several cases where we were passing DIP coordinates for gestures
being filtered and/or ack'ed in ContentViewCore.  Fix this by re-scaling
gesture-related coordinates to pixels before sending them to ContentViewCore.

NOTRY=true

Review URL: https://codereview.chromium.org/165393014

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252162 0039d316-1c4b-4281-b951-d872f2087c98
parent 564b90bb
...@@ -577,8 +577,10 @@ void ContentViewCoreImpl::OnGestureEventAck(const blink::WebGestureEvent& event, ...@@ -577,8 +577,10 @@ void ContentViewCoreImpl::OnGestureEventAck(const blink::WebGestureEvent& event,
switch (event.type) { switch (event.type) {
case WebInputEvent::GestureFlingStart: case WebInputEvent::GestureFlingStart:
if (ack_result == INPUT_EVENT_ACK_STATE_CONSUMED) { if (ack_result == INPUT_EVENT_ACK_STATE_CONSUMED) {
// The view expects the fling velocity in pixels/s.
Java_ContentViewCore_onFlingStartEventConsumed(env, j_obj.obj(), 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 { } else {
// If a scroll ends with a fling, a SCROLL_END event is never sent. // 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 // However, if that fling went unconsumed, we still need to let the
...@@ -587,8 +589,10 @@ void ContentViewCoreImpl::OnGestureEventAck(const blink::WebGestureEvent& event, ...@@ -587,8 +589,10 @@ void ContentViewCoreImpl::OnGestureEventAck(const blink::WebGestureEvent& event,
} }
if (ack_result == INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS) { 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(), 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; break;
case WebInputEvent::GestureFlingCancel: case WebInputEvent::GestureFlingCancel:
...@@ -636,8 +640,8 @@ bool ContentViewCoreImpl::FilterInputEvent(const blink::WebInputEvent& event) { ...@@ -636,8 +640,8 @@ bool ContentViewCoreImpl::FilterInputEvent(const blink::WebInputEvent& event) {
return Java_ContentViewCore_filterTapOrPressEvent(env, return Java_ContentViewCore_filterTapOrPressEvent(env,
j_obj.obj(), j_obj.obj(),
gesture_type, gesture_type,
gesture.x, gesture.x * GetDpiScale(),
gesture.y); gesture.y * GetDpiScale());
} }
bool ContentViewCoreImpl::HasFocus() { bool ContentViewCoreImpl::HasFocus() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment