| Index: content/browser/renderer_host/input/web_input_event_builders_android.cc
|
| diff --git a/content/browser/renderer_host/input/web_input_event_builders_android.cc b/content/browser/renderer_host/input/web_input_event_builders_android.cc
|
| index 5dae8bbf646dfc185b8c711a4dde0f803d3a7664..979f8269d3a04943a8e59e86c6041cdfcbc1653f 100644
|
| --- a/content/browser/renderer_host/input/web_input_event_builders_android.cc
|
| +++ b/content/browser/renderer_host/input/web_input_event_builders_android.cc
|
| @@ -68,20 +68,21 @@ WebTouchPoint::State ToWebTouchPointState(MotionEventAndroid::Action action,
|
|
|
| WebTouchPoint BuildWebTouchPoint(const MotionEventAndroid& event,
|
| size_t pointer_index,
|
| - float dpi_scale) {
|
| + float px_to_dp) {
|
| WebTouchPoint touch;
|
| touch.id = event.GetPointerId(pointer_index);
|
| - touch.state = ToWebTouchPointState(event.GetActionMasked(),
|
| - pointer_index == event.GetActionIndex());
|
| - touch.position.x = event.GetX(pointer_index) / dpi_scale;
|
| - touch.position.y = event.GetY(pointer_index) / dpi_scale;
|
| + touch.state = ToWebTouchPointState(
|
| + event.GetAction(),
|
| + static_cast<int>(pointer_index) == event.GetActionIndex());
|
| + touch.position.x = event.GetX(pointer_index) * px_to_dp;
|
| + touch.position.y = event.GetY(pointer_index) * px_to_dp;
|
| // TODO(joth): Raw event co-ordinates.
|
| touch.screenPosition = touch.position;
|
|
|
| const int radius_major =
|
| - static_cast<int>(event.GetTouchMajor(pointer_index) * 0.5f / dpi_scale);
|
| + static_cast<int>(event.GetTouchMajor(pointer_index) * 0.5f * px_to_dp);
|
| const int radius_minor =
|
| - static_cast<int>(event.GetTouchMinor(pointer_index) * 0.5f / dpi_scale);
|
| + static_cast<int>(event.GetTouchMinor(pointer_index) * 0.5f * px_to_dp);
|
| const float major_angle_in_radians_clockwise_from_vertical =
|
| event.GetOrientation();
|
|
|
| @@ -226,14 +227,12 @@ WebGestureEvent WebGestureEventBuilder::Build(WebInputEvent::Type type,
|
| return result;
|
| }
|
|
|
| -blink::WebTouchEvent WebTouchEventBuilder::Build(jobject motion_event,
|
| - float dpi_scale) {
|
| - DCHECK(motion_event);
|
| - MotionEventAndroid event(motion_event);
|
| -
|
| +blink::WebTouchEvent WebTouchEventBuilder::Build(
|
| + const MotionEventAndroid& event,
|
| + float device_scale_factor) {
|
| blink::WebTouchEvent result;
|
|
|
| - result.type = ToWebInputEventType(event.GetActionMasked());
|
| + result.type = ToWebInputEventType(event.GetAction());
|
| DCHECK(WebInputEvent::isTouchEventType(result.type));
|
|
|
| result.timeStampSeconds =
|
| @@ -244,8 +243,9 @@ blink::WebTouchEvent WebTouchEventBuilder::Build(jobject motion_event,
|
| static_cast<size_t>(WebTouchEvent::touchesLengthCap));
|
| DCHECK_GT(result.touchesLength, 0U);
|
|
|
| + const float px_to_dp = 1.f / device_scale_factor;
|
| for (size_t i = 0; i < result.touchesLength; ++i)
|
| - result.touches[i] = BuildWebTouchPoint(event, i, dpi_scale);
|
| + result.touches[i] = BuildWebTouchPoint(event, i, px_to_dp);
|
|
|
| return result;
|
| }
|
|
|