Chromium Code Reviews| Index: content/browser/renderer_host/input/web_input_event_util.cc |
| diff --git a/content/browser/renderer_host/input/web_input_event_util.cc b/content/browser/renderer_host/input/web_input_event_util.cc |
| index 804c0b126c19ee0223b10b5048ca9a7dca276259..bf51d08005cbd3cb3572f1a6cd7e72081331da23 100644 |
| --- a/content/browser/renderer_host/input/web_input_event_util.cc |
| +++ b/content/browser/renderer_host/input/web_input_event_util.cc |
| @@ -5,7 +5,10 @@ |
| #include "content/browser/renderer_host/input/web_input_event_util.h" |
| #include "base/strings/string_util.h" |
| -#include "third_party/WebKit/public/web/WebInputEvent.h" |
| +#include "ui/events/gesture_detection/gesture_event_data.h" |
| + |
| +using blink::WebInputEvent; |
| +using blink::WebGestureEvent; |
| namespace { |
| @@ -142,4 +145,101 @@ void UpdateWindowsKeyCodeAndKeyIdentifier(blink::WebKeyboardEvent* event, |
| } |
| } |
| +WebGestureEvent CreateWebGestureEventFromGestureEventData( |
|
tdresser
2014/03/03 19:44:32
The type conversion could be factored out of here
jdduke (slow)
2014/03/03 22:33:17
See above. In general I agree, but that file is o
tdresser
2014/03/04 13:48:35
A new file in events_base which contains some of c
jdduke (slow)
2014/03/04 15:50:14
Hmm, GestureEventData only exists in gesture_detec
tdresser
2014/03/04 16:32:14
If we thought it was worthwhile, we could at least
|
| + const ui::GestureEventData& data, |
| + float scale) { |
| + WebGestureEvent gesture; |
| + gesture.x = data.x * scale; |
| + gesture.y = data.y * scale; |
| + gesture.timeStampSeconds = (data.time - base::TimeTicks()).InSecondsF(); |
| + gesture.sourceDevice = WebGestureEvent::Touchscreen; |
| + |
| + switch (data.type) { |
| + case ui::GESTURE_SHOW_PRESS: |
| + gesture.type = WebInputEvent::GestureShowPress; |
| + gesture.data.showPress.width = data.details.show_press.width * scale; |
| + gesture.data.showPress.width = data.details.show_press.width * scale; |
| + break; |
| + case ui::GESTURE_DOUBLE_TAP: |
| + gesture.type = WebInputEvent::GestureDoubleTap; |
| + break; |
| + case ui::GESTURE_TAP: |
| + gesture.type = WebInputEvent::GestureTap; |
| + gesture.data.tap.tapCount = data.details.tap.tap_count; |
| + gesture.data.tap.width = data.details.tap.width * scale; |
| + gesture.data.tap.height = data.details.tap.height * scale; |
| + break; |
| + case ui::GESTURE_TAP_UNCONFIRMED: |
| + gesture.type = WebInputEvent::GestureTapUnconfirmed; |
| + gesture.data.tap.tapCount = data.details.tap.tap_count; |
| + gesture.data.tap.width = data.details.tap.width * scale; |
| + gesture.data.tap.height = data.details.tap.height * scale; |
| + break; |
| + case ui::GESTURE_LONG_PRESS: |
| + gesture.type = WebInputEvent::GestureLongPress; |
| + gesture.data.longPress.width = data.details.long_press.width * scale; |
| + gesture.data.longPress.height = data.details.long_press.height * scale; |
| + break; |
| + case ui::GESTURE_LONG_TAP: |
| + gesture.type = WebInputEvent::GestureLongTap; |
| + gesture.data.longPress.width = data.details.long_press.width * scale; |
| + gesture.data.longPress.height = data.details.long_press.height * scale; |
| + break; |
| + case ui::GESTURE_SCROLL_BEGIN: |
| + gesture.type = WebInputEvent::GestureScrollBegin; |
| + gesture.data.scrollBegin.deltaXHint = |
| + data.details.scroll_begin.delta_x_hint * scale; |
| + gesture.data.scrollBegin.deltaYHint = |
| + data.details.scroll_begin.delta_y_hint * scale; |
| + break; |
| + case ui::GESTURE_SCROLL_UPDATE: |
| + gesture.type = WebInputEvent::GestureScrollUpdate; |
| + gesture.data.scrollUpdate.deltaX = |
| + data.details.scroll_update.delta_x * scale; |
| + gesture.data.scrollUpdate.deltaY = |
| + data.details.scroll_update.delta_y * scale; |
| + gesture.data.scrollUpdate.velocityX = |
| + data.details.scroll_update.velocity_x * scale; |
| + gesture.data.scrollUpdate.velocityY = |
| + data.details.scroll_update.velocity_y * scale; |
| + break; |
| + case ui::GESTURE_SCROLL_END: |
| + gesture.type = WebInputEvent::GestureScrollEnd; |
| + break; |
| + case ui::GESTURE_FLING_START: |
| + gesture.type = WebInputEvent::GestureFlingStart; |
| + gesture.data.flingStart.velocityX = |
| + data.details.fling_start.velocity_x * scale; |
| + gesture.data.flingStart.velocityY = |
| + data.details.fling_start.velocity_y * scale; |
| + break; |
| + case ui::GESTURE_FLING_CANCEL: |
| + gesture.type = WebInputEvent::GestureFlingCancel; |
| + break; |
| + case ui::GESTURE_PINCH_BEGIN: |
| + gesture.type = WebInputEvent::GesturePinchBegin; |
| + break; |
| + case ui::GESTURE_PINCH_UPDATE: |
| + gesture.type = WebInputEvent::GesturePinchUpdate; |
| + gesture.data.pinchUpdate.scale = data.details.pinch_update.scale; |
| + break; |
| + case ui::GESTURE_PINCH_END: |
| + gesture.type = WebInputEvent::GesturePinchEnd; |
| + break; |
| + case ui::GESTURE_TAP_CANCEL: |
| + gesture.type = WebInputEvent::GestureTapCancel; |
| + break; |
| + case ui::GESTURE_TAP_DOWN: |
| + gesture.type = WebInputEvent::GestureTapDown; |
| + gesture.data.tapDown.width = data.details.tap_down.width * scale; |
| + gesture.data.tapDown.height = data.details.tap_down.height * scale; |
| + break; |
| + case ui::GESTURE_TYPE_INVALID: |
| + NOTREACHED() << "Invalid ui::GestureEventType provided."; |
| + break; |
| + } |
| + |
| + return gesture; |
| +} |
| + |
| } // namespace content |