Chromium Code Reviews| Index: third_party/WebKit/Source/core/input/TouchEventManager.cpp |
| diff --git a/third_party/WebKit/Source/core/input/TouchEventManager.cpp b/third_party/WebKit/Source/core/input/TouchEventManager.cpp |
| index 8cbaab593786745703e2db82a91ca6fa5f5c0b07..c6153a059c300b7b7546322d862906bf9025fa04 100644 |
| --- a/third_party/WebKit/Source/core/input/TouchEventManager.cpp |
| +++ b/third_party/WebKit/Source/core/input/TouchEventManager.cpp |
| @@ -97,6 +97,7 @@ void TouchEventManager::clear() { |
| m_touchPressed = false; |
| m_touchScrollStarted = false; |
| m_currentEvent = PlatformEvent::NoType; |
| + m_currentTouchAction = TouchActionAuto; |
| } |
| DEFINE_TRACE(TouchEventManager) { |
| @@ -172,6 +173,7 @@ WebInputEventResult TouchEventManager::dispatchTouchEvents( |
| if (allTouchesReleased) { |
| m_touchSequenceDocument.clear(); |
| m_touchSequenceUserGestureToken.clear(); |
| + m_currentTouchAction = TouchActionAuto; |
| } |
| WebInputEventResult eventResult = WebInputEventResult::NotHandled; |
| @@ -187,13 +189,14 @@ WebInputEventResult TouchEventManager::dispatchTouchEvents( |
| static_cast<PlatformTouchPoint::TouchState>(state))); |
| for (const auto& eventTarget : changedTouches[state].m_targets) { |
| EventTarget* touchEventTarget = eventTarget; |
| - TouchEvent* touchEvent = TouchEvent::create( |
| - touches, touchesByTarget.get(touchEventTarget), |
| - changedTouches[state].m_touches.get(), eventName, |
| - touchEventTarget->toNode()->document().domWindow(), |
| - event.getModifiers(), event.cancelable(), |
| - event.causesScrollingIfUncanceled(), |
| - event.touchStartOrFirstTouchMove(), event.timestamp()); |
| + TouchEvent* touchEvent = |
| + TouchEvent::create(touches, touchesByTarget.get(touchEventTarget), |
| + changedTouches[state].m_touches.get(), eventName, |
| + touchEventTarget->toNode()->document().domWindow(), |
| + event.getModifiers(), event.cancelable(), |
| + event.causesScrollingIfUncanceled(), |
| + event.touchStartOrFirstTouchMove(), |
| + event.timestamp(), m_currentTouchAction); |
| DispatchEventResult domDispatchResult = |
| touchEventTarget->dispatchEvent(touchEvent); |
| @@ -343,6 +346,7 @@ void TouchEventManager::updateTargetAndRegionMapsForTouchStarts( |
| TouchActionUtil::computeEffectiveTouchAction(*touchInfo.touchNode); |
| if (effectiveTouchAction != TouchActionAuto) |
| m_frame->page()->chromeClient().setTouchAction(effectiveTouchAction); |
| + m_currentTouchAction = effectiveTouchAction; |
|
Rick Byers
2016/11/07 17:01:09
This isn't sufficient for multi-finger gestures.
dtapuska
2016/11/07 18:51:40
Done.
|
| } |
| } |
| } |