diff options
author | Cary Clark <cary@android.com> | 2010-12-28 11:30:18 -0500 |
---|---|---|
committer | Cary Clark <cary@android.com> | 2010-12-28 11:36:09 -0500 |
commit | aa86ac82bc296931d4de6715fa966be8d0f8af2f (patch) | |
tree | ae04e3034ea26164f889e4ae7be35ee07438e725 /core/java | |
parent | 2990594e086e8ba29aa537e739fc278f7433de09 (diff) | |
download | frameworks_base-aa86ac82bc296931d4de6715fa966be8d0f8af2f.zip frameworks_base-aa86ac82bc296931d4de6715fa966be8d0f8af2f.tar.gz frameworks_base-aa86ac82bc296931d4de6715fa966be8d0f8af2f.tar.bz2 |
map keyboard for webview
Treat the numeric keypad enter as the regular enter for the
purposes of completing a text entry or activating the currently
selected link.
Add a little keyboard-related debugging.
Don't call select text to extend the selection if the tap
point hasn't moved.
A separate change to the Browser app adds more keyboard
accelerators.
bug:3270434
bug:3191699
Change-Id: I8a38b26196e93e344dc2a4b39a6968fe0c158d47
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/webkit/WebTextView.java | 6 | ||||
-rw-r--r-- | core/java/android/webkit/WebView.java | 17 |
2 files changed, 17 insertions, 6 deletions
diff --git a/core/java/android/webkit/WebTextView.java b/core/java/android/webkit/WebTextView.java index bb18270..cf447db 100644 --- a/core/java/android/webkit/WebTextView.java +++ b/core/java/android/webkit/WebTextView.java @@ -238,7 +238,8 @@ import junit.framework.Assert; } } - if ((mSingle && KeyEvent.KEYCODE_ENTER == keyCode)) { + if (mSingle && (KeyEvent.KEYCODE_ENTER == keyCode + || KeyEvent.KEYCODE_NUMPAD_ENTER == keyCode)) { if (isPopupShowing()) { return super.dispatchKeyEvent(event); } @@ -296,7 +297,8 @@ import junit.framework.Assert; // so do not pass down to javascript, and instead // return true. If it is an arrow key or a delete key, we can go // ahead and pass it down. - if (KeyEvent.KEYCODE_ENTER == keyCode) { + if (KeyEvent.KEYCODE_ENTER == keyCode + || KeyEvent.KEYCODE_NUMPAD_ENTER == keyCode) { // For multi-line text boxes, newlines will // trigger onTextChanged for key down (which will send both // key up and key down) but not key up. diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 9eecdc1..5b24c50 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -4471,10 +4471,17 @@ public class WebView extends AbsoluteLayout return false; } + private boolean isEnterActionKey(int keyCode) { + return keyCode == KeyEvent.KEYCODE_DPAD_CENTER + || keyCode == KeyEvent.KEYCODE_ENTER + || keyCode == KeyEvent.KEYCODE_NUMPAD_ENTER; + } + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (DebugFlags.WEB_VIEW) { Log.v(LOGTAG, "keyDown at " + System.currentTimeMillis() + + "keyCode=" + keyCode + ", " + event + ", unicode=" + event.getUnicodeChar()); } @@ -4543,7 +4550,7 @@ public class WebView extends AbsoluteLayout return false; } - if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { + if (isEnterActionKey(keyCode)) { switchOutDrawHistory(); if (event.getRepeatCount() == 0) { if (mSelectingText) { @@ -4672,7 +4679,7 @@ public class WebView extends AbsoluteLayout return false; } - if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { + if (isEnterActionKey(keyCode)) { // remove the long press message first mPrivateHandler.removeMessages(LONG_PRESS_CENTER); mGotCenterDown = false; @@ -5464,8 +5471,10 @@ public class WebView extends AbsoluteLayout } else { // TODO: allow scrollable overflow div to autoscroll } - nativeExtendSelection(contentX, contentY); - invalidate(); + if (deltaX != 0 || deltaY != 0) { + nativeExtendSelection(contentX, contentY); + invalidate(); + } break; } |