| Index: chrome/browser/android/vr_shell/vr_controller.cc
|
| diff --git a/chrome/browser/android/vr_shell/vr_controller.cc b/chrome/browser/android/vr_shell/vr_controller.cc
|
| index 3f16fa0b0017069a21f6af2292a7635edc75d5c1..ea1c1ea3eeaa013f83c8c7d4073fd01fd0e8571f 100644
|
| --- a/chrome/browser/android/vr_shell/vr_controller.cc
|
| +++ b/chrome/browser/android/vr_shell/vr_controller.cc
|
| @@ -13,6 +13,8 @@
|
| #include "base/time/time.h"
|
| #include "chrome/browser/android/vr_shell/elbow_model.h"
|
| #include "device/vr/vr_math.h"
|
| +#include "third_party/WebKit/public/platform/WebGestureEvent.h"
|
| +#include "third_party/WebKit/public/platform/WebInputEvent.h"
|
| #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/gvr.h"
|
| #include "third_party/gvr-android-sdk/src/libraries/headers/vr/gvr/capi/include/gvr_controller.h"
|
|
|
| @@ -244,12 +246,12 @@ void VrController::UpdateTouchInfo() {
|
| gvr::GvrApi::GetTimePointNow().monotonic_system_time_nanos;
|
| }
|
|
|
| -std::vector<std::unique_ptr<WebGestureEvent>> VrController::DetectGestures() {
|
| - std::vector<std::unique_ptr<WebGestureEvent>> gesture_list;
|
| - std::unique_ptr<WebGestureEvent> gesture(new WebGestureEvent());
|
| +std::unique_ptr<GestureList> VrController::DetectGestures() {
|
| + std::unique_ptr<GestureList> gesture_list = base::MakeUnique<GestureList>();
|
| + std::unique_ptr<blink::WebGestureEvent> gesture(new blink::WebGestureEvent());
|
|
|
| if (controller_state_->GetConnectionState() != gvr::kControllerConnected) {
|
| - gesture_list.push_back(std::move(gesture));
|
| + gesture_list->push_back(std::move(gesture));
|
| return gesture_list;
|
| }
|
|
|
| @@ -259,22 +261,17 @@ std::vector<std::unique_ptr<WebGestureEvent>> VrController::DetectGestures() {
|
| UpdateOverallVelocity();
|
|
|
| UpdateGestureFromTouchInfo(gesture.get());
|
| -
|
| - if (gesture->GetType() == WebInputEvent::kUndefined &&
|
| - ButtonUpHappened(gvr::kControllerButtonClick)) {
|
| - gesture->SetType(WebInputEvent::kGestureTapDown);
|
| - gesture->x = 0;
|
| - gesture->y = 0;
|
| - }
|
| gesture->source_device = blink::kWebGestureDeviceTouchpad;
|
| - gesture_list.push_back(std::move(gesture));
|
| + gesture_list->push_back(std::move(gesture));
|
|
|
| - if (gesture_list.back()->GetType() == WebInputEvent::kGestureScrollEnd) {
|
| + if (gesture_list->back()->GetType() ==
|
| + blink::WebInputEvent::kGestureScrollEnd) {
|
| if (!ButtonDownHappened(gvr::kControllerButtonClick) &&
|
| (last_velocity_.x() != 0.0 || last_velocity_.y() != 0.0)) {
|
| - std::unique_ptr<WebGestureEvent> fling(new WebGestureEvent(
|
| - WebInputEvent::kGestureFlingStart, WebInputEvent::kNoModifiers,
|
| - gesture_list.back()->TimeStampSeconds()));
|
| + std::unique_ptr<blink::WebGestureEvent> fling(
|
| + new blink::WebGestureEvent(blink::WebInputEvent::kGestureFlingStart,
|
| + blink::WebInputEvent::kNoModifiers,
|
| + gesture_list->back()->TimeStampSeconds()));
|
| fling->source_device = blink::kWebGestureDeviceTouchpad;
|
| if (IsHorizontalGesture()) {
|
| fling->data.fling_start.velocity_x =
|
| @@ -283,7 +280,7 @@ std::vector<std::unique_ptr<WebGestureEvent>> VrController::DetectGestures() {
|
| fling->data.fling_start.velocity_y =
|
| last_velocity_.y() * kDisplacementScaleFactor;
|
| }
|
| - gesture_list.push_back(std::move(fling));
|
| + gesture_list->push_back(std::move(fling));
|
| }
|
| Reset();
|
| }
|
| @@ -291,7 +288,7 @@ std::vector<std::unique_ptr<WebGestureEvent>> VrController::DetectGestures() {
|
| return gesture_list;
|
| }
|
|
|
| -void VrController::UpdateGestureFromTouchInfo(WebGestureEvent* gesture) {
|
| +void VrController::UpdateGestureFromTouchInfo(blink::WebGestureEvent* gesture) {
|
| gesture->SetTimeStampSeconds(
|
| (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF());
|
| switch (state_) {
|
| @@ -313,7 +310,7 @@ void VrController::UpdateGestureFromTouchInfo(WebGestureEvent* gesture) {
|
| }
|
| }
|
|
|
| -void VrController::HandleWaitingState(WebGestureEvent* gesture) {
|
| +void VrController::HandleWaitingState(blink::WebGestureEvent* gesture) {
|
| // User puts finger on touch pad (or when the touch down for current gesture
|
| // is missed, initiate gesture from current touch point).
|
| if (touch_info_->touch_down || touch_info_->is_touching) {
|
| @@ -323,12 +320,12 @@ void VrController::HandleWaitingState(WebGestureEvent* gesture) {
|
| *cur_touch_point_ = touch_info_->touch_point;
|
| state_ = TOUCHING;
|
|
|
| - gesture->SetType(WebInputEvent::kGestureFlingCancel);
|
| + gesture->SetType(blink::WebInputEvent::kGestureFlingCancel);
|
| gesture->data.fling_cancel.prevent_boosting = false;
|
| }
|
| }
|
|
|
| -void VrController::HandleDetectingState(WebGestureEvent* gesture) {
|
| +void VrController::HandleDetectingState(blink::WebGestureEvent* gesture) {
|
| // User lifts up finger from touch pad.
|
| if (touch_info_->touch_up || !(touch_info_->is_touching)) {
|
| Reset();
|
| @@ -339,9 +336,9 @@ void VrController::HandleDetectingState(WebGestureEvent* gesture) {
|
| // and the Controller's button is not down.
|
| if (touch_position_changed_ && touch_info_->is_touching &&
|
| !InSlop(touch_info_->touch_point.position) &&
|
| - !ButtonDownHappened(gvr::kControllerButtonClick)) {
|
| + !ButtonState(gvr::kControllerButtonClick)) {
|
| state_ = SCROLLING;
|
| - gesture->SetType(WebInputEvent::kGestureScrollBegin);
|
| + gesture->SetType(blink::WebInputEvent::kGestureScrollBegin);
|
| UpdateGestureParameters();
|
| gesture->data.scroll_begin.delta_x_hint =
|
| displacement_.x() * kDisplacementScaleFactor;
|
| @@ -352,15 +349,15 @@ void VrController::HandleDetectingState(WebGestureEvent* gesture) {
|
| }
|
| }
|
|
|
| -void VrController::HandleScrollingState(WebGestureEvent* gesture) {
|
| +void VrController::HandleScrollingState(blink::WebGestureEvent* gesture) {
|
| if (touch_info_->touch_up || !(touch_info_->is_touching) ||
|
| ButtonDownHappened(gvr::kControllerButtonClick)) {
|
| // Gesture ends.
|
| - gesture->SetType(WebInputEvent::kGestureScrollEnd);
|
| + gesture->SetType(blink::WebInputEvent::kGestureScrollEnd);
|
| UpdateGestureParameters();
|
| } else if (touch_position_changed_) {
|
| // User continues scrolling and there is a change in touch position.
|
| - gesture->SetType(WebInputEvent::kGestureScrollUpdate);
|
| + gesture->SetType(blink::WebInputEvent::kGestureScrollUpdate);
|
| UpdateGestureParameters();
|
| if (IsHorizontalGesture()) {
|
| gesture->data.scroll_update.delta_x =
|
|
|