diff options
| author | Cary Clark <cary@android.com> | 2011-01-10 09:55:54 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-01-10 09:55:54 -0800 |
| commit | b74e32cc7ded9b26c1ba1e1bcff98fc9e7128562 (patch) | |
| tree | 32c41a9fcefe38d175d572efcccc2053a724e9e2 /core/java | |
| parent | 36fd7a39caafac26ea3d56ffc924bce0a53092f1 (diff) | |
| parent | a3ee56f4ae7c55da4663ae475a60b5382ac41655 (diff) | |
Merge "add more alt key acceleration in webview" into honeycomb
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/webkit/WebView.java | 45 |
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); |
