| Index: third_party/WebKit/Source/web/WebInputEventConversion.cpp
|
| diff --git a/third_party/WebKit/Source/web/WebInputEventConversion.cpp b/third_party/WebKit/Source/web/WebInputEventConversion.cpp
|
| index a8b015cabea6fbab3107ecf56c4e7dea3ef8bfea..8fb0a7e4020d757b35c12de850361604bbb929ab 100644
|
| --- a/third_party/WebKit/Source/web/WebInputEventConversion.cpp
|
| +++ b/third_party/WebKit/Source/web/WebInputEventConversion.cpp
|
| @@ -678,9 +678,10 @@ WebKeyboardEventBuilder::WebKeyboardEventBuilder(const KeyboardEvent& event) {
|
|
|
| static WebTouchPoint toWebTouchPoint(const Touch* touch,
|
| const LayoutItem layoutItem,
|
| - WebTouchPoint::State state) {
|
| + WebTouchPoint::State state,
|
| + WebPointerProperties::PointerType type) {
|
| WebTouchPoint point;
|
| - point.pointerType = WebPointerProperties::PointerType::Touch;
|
| + point.pointerType = type;
|
| point.id = touch->identifier();
|
| point.screenPosition = touch->screenLocation();
|
| point.position = convertAbsoluteLocationForLayoutObjectFloat(
|
| @@ -703,11 +704,13 @@ static unsigned indexOfTouchPointWithId(const WebTouchPoint* touchPoints,
|
| return std::numeric_limits<unsigned>::max();
|
| }
|
|
|
| -static void addTouchPointsUpdateStateIfNecessary(WebTouchPoint::State state,
|
| - TouchList* touches,
|
| - WebTouchPoint* touchPoints,
|
| - unsigned* touchPointsLength,
|
| - const LayoutItem layoutItem) {
|
| +static void addTouchPointsUpdateStateIfNecessary(
|
| + WebTouchPoint::State state,
|
| + TouchList* touches,
|
| + WebTouchPoint* touchPoints,
|
| + unsigned* touchPointsLength,
|
| + const LayoutItem layoutItem,
|
| + WebPointerProperties::PointerType pointerType) {
|
| unsigned initialTouchPointsLength = *touchPointsLength;
|
| for (unsigned i = 0; i < touches->length(); ++i) {
|
| const unsigned pointIndex = *touchPointsLength;
|
| @@ -720,7 +723,8 @@ static void addTouchPointsUpdateStateIfNecessary(WebTouchPoint::State state,
|
| if (existingPointIndex != std::numeric_limits<unsigned>::max()) {
|
| touchPoints[existingPointIndex].state = state;
|
| } else {
|
| - touchPoints[pointIndex] = toWebTouchPoint(touch, layoutItem, state);
|
| + touchPoints[pointIndex] =
|
| + toWebTouchPoint(touch, layoutItem, state, pointerType);
|
| ++(*touchPointsLength);
|
| }
|
| }
|
| @@ -753,15 +757,16 @@ WebTouchEventBuilder::WebTouchEventBuilder(const LayoutItem layoutItem,
|
| i < event.touches()->length() &&
|
| i < static_cast<unsigned>(WebTouchEvent::kTouchesLengthCap);
|
| ++i) {
|
| - touches[i] = toWebTouchPoint(event.touches()->item(i), layoutItem,
|
| - WebTouchPoint::StateStationary);
|
| + touches[i] =
|
| + toWebTouchPoint(event.touches()->item(i), layoutItem,
|
| + WebTouchPoint::StateStationary, event.pointerType());
|
| ++touchesLength;
|
| }
|
| // If any existing points are also in the change list, we should update
|
| // their state, otherwise just add the new points.
|
| - addTouchPointsUpdateStateIfNecessary(toWebTouchPointState(event.type()),
|
| - event.changedTouches(), touches,
|
| - &touchesLength, layoutItem);
|
| + addTouchPointsUpdateStateIfNecessary(
|
| + toWebTouchPointState(event.type()), event.changedTouches(), touches,
|
| + &touchesLength, layoutItem, event.pointerType());
|
| }
|
|
|
| WebGestureEventBuilder::WebGestureEventBuilder(const LayoutItem layoutItem,
|
|
|