| Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| index 30a5d3eac45087bc0adba8df73c82720af7da65d..70507f5c8240481baa311697c2af46c75f8a99c7 100644
|
| --- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| +++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
|
| @@ -1,4 +1,5 @@
|
| // Copyright 2012 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| @@ -126,6 +127,8 @@ public class ContentViewCore
|
| // expects HashSet (no bindings for interfaces).
|
| private final HashSet<Object> mRetainedJavaScriptObjects = new HashSet<Object>();
|
|
|
| + private GamepadList mGamepadList;
|
| +
|
| /**
|
| * Interface that consumers of {@link ContentViewCore} must implement to allow the proper
|
| * dispatching of view methods through the containing view.
|
| @@ -504,6 +507,7 @@ public class ContentViewCore
|
| mInsertionHandlePoint = mRenderCoordinates.createNormalizedPoint();
|
| mAccessibilityManager = (AccessibilityManager)
|
| getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);
|
| + mGamepadList = GamepadList.createInstance(context);
|
| }
|
|
|
| /**
|
| @@ -1857,6 +1861,9 @@ public class ContentViewCore
|
| * @see View#dispatchKeyEvent(KeyEvent)
|
| */
|
| public boolean dispatchKeyEvent(KeyEvent event) {
|
| + if (mGamepadList.isGamepadAccessed() && mGamepadList.isGamepadEvent(event)) {
|
| + return mGamepadList.updateForEvent(event);
|
| + }
|
| if (getContentViewClient().shouldOverrideKeyEvent(event)) {
|
| return mContainerViewInternals.super_dispatchKeyEvent(event);
|
| }
|
| @@ -1866,6 +1873,18 @@ public class ContentViewCore
|
| return mContainerViewInternals.super_dispatchKeyEvent(event);
|
| }
|
|
|
| + public void onPause() {
|
| + if (mGamepadList != null) {
|
| + mGamepadList.onPause();
|
| + }
|
| + }
|
| +
|
| + public void onResume() {
|
| + if (mGamepadList != null) {
|
| + mGamepadList.onResume();
|
| + }
|
| + }
|
| +
|
| /**
|
| * @see View#onHoverEvent(MotionEvent)
|
| * Mouse move events are sent on hover enter, hover move and hover exit.
|
| @@ -1890,6 +1909,9 @@ public class ContentViewCore
|
| * @see View#onGenericMotionEvent(MotionEvent)
|
| */
|
| public boolean onGenericMotionEvent(MotionEvent event) {
|
| + if (mGamepadList.isGamepadAccessed() && mGamepadList.isGamepadEvent(event)) {
|
| + return mGamepadList.updateForEvent(event);
|
| + }
|
| if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) != 0) {
|
| switch (event.getAction()) {
|
| case MotionEvent.ACTION_SCROLL:
|
|
|