| Index: content/browser/renderer_host/input/touch_emulator.cc
|
| diff --git a/content/browser/renderer_host/input/touch_emulator.cc b/content/browser/renderer_host/input/touch_emulator.cc
|
| index 785935f3d9a9a2ce41cc2dbc89b3a766db51cdbe..42b43106c7861847092ca29d19443a0b0cdce726 100644
|
| --- a/content/browser/renderer_host/input/touch_emulator.cc
|
| +++ b/content/browser/renderer_host/input/touch_emulator.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "content/browser/renderer_host/input/motion_event_web.h"
|
| #include "content/browser/renderer_host/input/web_input_event_util.h"
|
| +#include "content/common/input/web_touch_event_traits.h"
|
| #include "content/public/common/content_client.h"
|
| #include "content/public/common/content_switches.h"
|
| #include "grit/content_resources.h"
|
| @@ -261,10 +262,10 @@ void TouchEmulator::CancelTouch() {
|
| if (!touch_active_)
|
| return;
|
|
|
| - touch_event_.timeStampSeconds =
|
| - (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF();
|
| - touch_event_.type = WebInputEvent::TouchCancel;
|
| - touch_event_.touches[0].state = WebTouchPoint::StateCancelled;
|
| + WebTouchEventTraits::ResetTypeAndTouchStates(
|
| + WebInputEvent::TouchCancel,
|
| + (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF(),
|
| + &touch_event_);
|
| touch_active_ = false;
|
| if (gesture_provider_.OnTouchEvent(MotionEventWeb(touch_event_)))
|
| client_->ForwardTouchEvent(touch_event_);
|
| @@ -339,9 +340,26 @@ bool TouchEmulator::FillTouchEventAndPoint(const WebMouseEvent& mouse_event) {
|
| return false;
|
| }
|
|
|
| + WebInputEvent::Type eventType;
|
| + switch (mouse_event.type) {
|
| + case WebInputEvent::MouseDown:
|
| + eventType = WebInputEvent::TouchStart;
|
| + touch_active_ = true;
|
| + break;
|
| + case WebInputEvent::MouseMove:
|
| + eventType = WebInputEvent::TouchMove;
|
| + break;
|
| + case WebInputEvent::MouseUp:
|
| + eventType = WebInputEvent::TouchEnd;
|
| + break;
|
| + default:
|
| + eventType = WebInputEvent::Undefined;
|
| + NOTREACHED();
|
| + }
|
| touch_event_.touchesLength = 1;
|
| - touch_event_.timeStampSeconds = mouse_event.timeStampSeconds;
|
| touch_event_.modifiers = mouse_event.modifiers;
|
| + WebTouchEventTraits::ResetTypeAndTouchStates(
|
| + eventType, mouse_event.timeStampSeconds, &touch_event_);
|
|
|
| WebTouchPoint& point = touch_event_.touches[0];
|
| point.id = 0;
|
| @@ -353,24 +371,6 @@ bool TouchEmulator::FillTouchEventAndPoint(const WebMouseEvent& mouse_event) {
|
| point.position.y = mouse_event.y;
|
| point.screenPosition.y = mouse_event.globalY;
|
|
|
| - switch (mouse_event.type) {
|
| - case WebInputEvent::MouseDown:
|
| - touch_event_.type = WebInputEvent::TouchStart;
|
| - touch_active_ = true;
|
| - point.state = WebTouchPoint::StatePressed;
|
| - break;
|
| - case WebInputEvent::MouseMove:
|
| - touch_event_.type = WebInputEvent::TouchMove;
|
| - point.state = WebTouchPoint::StateMoved;
|
| - break;
|
| - case WebInputEvent::MouseUp:
|
| - touch_event_.type = WebInputEvent::TouchEnd;
|
| - touch_active_ = false;
|
| - point.state = WebTouchPoint::StateReleased;
|
| - break;
|
| - default:
|
| - NOTREACHED();
|
| - }
|
| return true;
|
| }
|
|
|
|
|