summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2010-12-28 11:30:18 -0500
committerCary Clark <cary@android.com>2010-12-28 11:36:09 -0500
commitaa86ac82bc296931d4de6715fa966be8d0f8af2f (patch)
treeae04e3034ea26164f889e4ae7be35ee07438e725 /core/java
parent2990594e086e8ba29aa537e739fc278f7433de09 (diff)
downloadframeworks_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.java6
-rw-r--r--core/java/android/webkit/WebView.java17
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;
}