Index: content/browser/renderer_host/input/synthetic_gesture_target_base.cc |
diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_base.cc b/content/browser/renderer_host/input/synthetic_gesture_target_base.cc |
index 65667d802e9c5b95d49c9b08054c0563bd49f3d0..b53742920d21d68e629cde9fa8734d4650e984e3 100644 |
--- a/content/browser/renderer_host/input/synthetic_gesture_target_base.cc |
+++ b/content/browser/renderer_host/input/synthetic_gesture_target_base.cc |
@@ -18,6 +18,7 @@ using blink::WebTouchEvent; |
using blink::WebTouchPoint; |
using blink::WebMouseEvent; |
using blink::WebMouseWheelEvent; |
+using blink::WebGestureEvent; |
namespace content { |
namespace { |
@@ -75,6 +76,12 @@ void SyntheticGestureTargetBase::DispatchInputEventToPlatform( |
PointIsWithinContents(web_mouse.x, web_mouse.y)) |
<< "Mouse pointer is not within content bounds on MouseDown."; |
DispatchWebMouseEventToPlatform(web_mouse, latency_info); |
+ } else if (event.type() == WebInputEvent::GestureFlingStart) { |
+ const WebGestureEvent& gesture_event = |
+ static_cast<const WebGestureEvent&>(event); |
+ CHECK(gesture_event.sourceDevice == blink::WebGestureDeviceTouchpad) |
+ << "The gesture event source must be touchpad."; |
+ DispatchTouchpadGestureFlingStartToPlatform(gesture_event, latency_info); |
} else { |
NOTREACHED(); |
} |
@@ -101,6 +108,14 @@ void SyntheticGestureTargetBase::DispatchWebMouseEventToPlatform( |
host_->ForwardMouseEventWithLatencyInfo(web_mouse, latency_info); |
} |
+void SyntheticGestureTargetBase::DispatchTouchpadGestureFlingStartToPlatform( |
+ const blink::WebGestureEvent& web_gesture, |
+ const ui::LatencyInfo& latency_info) { |
+ DCHECK_EQ(web_gesture.type(), WebInputEvent::GestureFlingStart); |
+ DCHECK_EQ(web_gesture.sourceDevice, blink::WebGestureDeviceTouchpad); |
+ host_->ForwardGestureEventWithLatencyInfo(web_gesture, latency_info); |
bokan
2017/03/10 14:41:57
This base implementation is meant to work on Mac?
sahel
2017/03/10 21:51:41
Swipe for touchpad sends a bunch of mouse wheel ev
|
+} |
+ |
void SyntheticGestureTargetBase::SetNeedsFlush() { |
host_->SetNeedsFlush(); |
} |