summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2011-01-10 09:55:54 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-10 09:55:54 -0800
commitb74e32cc7ded9b26c1ba1e1bcff98fc9e7128562 (patch)
tree32c41a9fcefe38d175d572efcccc2053a724e9e2 /core/java/android
parent36fd7a39caafac26ea3d56ffc924bce0a53092f1 (diff)
parenta3ee56f4ae7c55da4663ae475a60b5382ac41655 (diff)
Merge "add more alt key acceleration in webview" into honeycomb
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/webkit/WebView.java45
1 files changed, 42 insertions, 3 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 9823bc0ace2a..61f0bce4b90a 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -4573,12 +4573,32 @@ public class WebView extends AbsoluteLayout
}
if (keyCode == KeyEvent.KEYCODE_PAGE_UP) {
- pageUp(false);
- return true;
+ if (event.hasNoModifiers()) {
+ pageUp(false);
+ return true;
+ } else if (event.hasModifiers(KeyEvent.META_ALT_ON)) {
+ pageUp(true);
+ return true;
+ }
}
if (keyCode == KeyEvent.KEYCODE_PAGE_DOWN) {
- pageDown(false);
+ if (event.hasNoModifiers()) {
+ pageDown(false);
+ return true;
+ } else if (event.hasModifiers(KeyEvent.META_ALT_ON)) {
+ pageDown(true);
+ return true;
+ }
+ }
+
+ if (keyCode == KeyEvent.KEYCODE_MOVE_HOME && event.hasNoModifiers()) {
+ pageUp(true);
+ return true;
+ }
+
+ if (keyCode == KeyEvent.KEYCODE_MOVE_END && event.hasNoModifiers()) {
+ pageDown(true);
return true;
}
@@ -4589,6 +4609,22 @@ public class WebView extends AbsoluteLayout
letPageHandleNavKey(keyCode, event.getEventTime(), true, event.getMetaState());
return true;
}
+ if (event.hasModifiers(KeyEvent.META_ALT_ON)) {
+ switch (keyCode) {
+ case KeyEvent.KEYCODE_DPAD_UP:
+ pageUp(true);
+ return true;
+ case KeyEvent.KEYCODE_DPAD_DOWN:
+ pageDown(true);
+ return true;
+ case KeyEvent.KEYCODE_DPAD_LEFT:
+ nativeClearCursor(); // start next trackball movement from page edge
+ return pinScrollTo(0, mScrollY, true, 0);
+ case KeyEvent.KEYCODE_DPAD_RIGHT:
+ nativeClearCursor(); // start next trackball movement from page edge
+ return pinScrollTo(mContentWidth, mScrollY, true, 0);
+ }
+ }
if (mSelectingText) {
int xRate = keyCode == KeyEvent.KEYCODE_DPAD_LEFT
? -1 : keyCode == KeyEvent.KEYCODE_DPAD_RIGHT ? 1 : 0;
@@ -7947,6 +7983,9 @@ public class WebView extends AbsoluteLayout
Rect contentCursorRingBounds = nativeGetCursorRingBounds();
if (contentCursorRingBounds.isEmpty()) return keyHandled;
Rect viewCursorRingBounds = contentToViewRect(contentCursorRingBounds);
+ // set last touch so that context menu related functions will work
+ mLastTouchX = (viewCursorRingBounds.left + viewCursorRingBounds.right) / 2;
+ mLastTouchY = (viewCursorRingBounds.top + viewCursorRingBounds.bottom) / 2;
Rect visRect = new Rect();
calcOurVisibleRect(visRect);
Rect outset = new Rect(visRect);