| Index: android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| index 5e1ab63f707d0c5ef8f95bc87ac6bf7f6255afb1..ef26bf681c5492bb2bc119d4818e0504165a63fa 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| @@ -1223,10 +1223,27 @@ public class AwContents {
|
| return mContentViewCore.onKeyUp(keyCode, event);
|
| }
|
|
|
| + private boolean isDpadEvent(KeyEvent event) {
|
| + if (event.getAction() == KeyEvent.ACTION_DOWN) {
|
| + switch (event.getKeyCode()) {
|
| + case KeyEvent.KEYCODE_DPAD_CENTER:
|
| + case KeyEvent.KEYCODE_DPAD_DOWN:
|
| + case KeyEvent.KEYCODE_DPAD_UP:
|
| + case KeyEvent.KEYCODE_DPAD_LEFT:
|
| + case KeyEvent.KEYCODE_DPAD_RIGHT:
|
| + return true;
|
| + }
|
| + }
|
| + return false;
|
| + }
|
| +
|
| /**
|
| * @see android.webkit.WebView#dispatchKeyEvent(KeyEvent)
|
| */
|
| public boolean dispatchKeyEvent(KeyEvent event) {
|
| + if (isDpadEvent(event)) {
|
| + mSettings.setSpatialNavigationEnabled(true);
|
| + }
|
| return mContentViewCore.dispatchKeyEvent(event);
|
| }
|
|
|
| @@ -1485,6 +1502,10 @@ public class AwContents {
|
| public boolean onTouchEvent(MotionEvent event) {
|
| if (mNativeAwContents == 0) return false;
|
|
|
| + if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
| + mSettings.setSpatialNavigationEnabled(false);
|
| + }
|
| +
|
| mScrollOffsetManager.setProcessingTouchEvent(true);
|
| boolean rv = mContentViewCore.onTouchEvent(event);
|
| mScrollOffsetManager.setProcessingTouchEvent(false);
|
|
|