diff options
author | John Reck <jreck@google.com> | 2011-09-18 11:03:00 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2011-09-19 09:12:27 -0700 |
commit | 0966dd22ec196e5fca0b5f4533d2a44aeb47ba93 (patch) | |
tree | d8820035851dfc226c5de06ccff0cdfe2a03ca41 /core/java/android | |
parent | 5dd1916c247f27284e4af8be5125633fddae6452 (diff) | |
download | frameworks_base-0966dd22ec196e5fca0b5f4533d2a44aeb47ba93.zip frameworks_base-0966dd22ec196e5fca0b5f4533d2a44aeb47ba93.tar.gz frameworks_base-0966dd22ec196e5fca0b5f4533d2a44aeb47ba93.tar.bz2 |
Bringing back the 'cache
Bug: 5333083
Change-Id: I9b693ad0a0d4ee2979a7dabad6575ffada962b16
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/webkit/WebView.java | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 600c899..25ccbec 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -644,7 +644,7 @@ public class WebView extends AbsoluteLayout private Drawable mSelectHandleLeft; private Drawable mSelectHandleRight; - static final boolean USE_WEBKIT_RINGS = true; + static final boolean USE_WEBKIT_RINGS = false; // the color used to highlight the touch rectangles private static final int HIGHLIGHT_COLOR = 0x6633b5e5; // the round corner for the highlight path @@ -730,6 +730,7 @@ public class WebView extends AbsoluteLayout static final int SELECT_AT = 135; static final int SCREEN_ON = 136; static final int ENTER_FULLSCREEN_VIDEO = 137; + static final int UPDATE_SELECTION = 138; private static final int FIRST_PACKAGE_MSG_ID = SCROLL_TO_MSG_ID; private static final int LAST_PACKAGE_MSG_ID = SET_TOUCH_HIGHLIGHT_RECTS; @@ -4062,8 +4063,11 @@ public class WebView extends AbsoluteLayout // state. // If mNativeClass is 0, we should not reach here, so we do not // need to check it again. + boolean pressed = (mTouchMode == TOUCH_SHORTPRESS_START_MODE + || mTouchMode == TOUCH_INIT_MODE + || mTouchMode == TOUCH_SHORTPRESS_MODE); nativeRecordButtons(hasFocus() && hasWindowFocus(), - (mTouchMode == TOUCH_SHORTPRESS_START_MODE && !USE_WEBKIT_RINGS) + (pressed && !USE_WEBKIT_RINGS) || mTrackballDown || mGotCenterDown, false); drawCoreAndCursorRing(canvas, mBackgroundColor, mDrawCursorRing && drawRings); @@ -6532,6 +6536,8 @@ public class WebView extends AbsoluteLayout mLastTouchTime = eventTime; mVelocityTracker = VelocityTracker.obtain(); mSnapScrollMode = SNAP_NONE; + mPrivateHandler.sendEmptyMessageDelayed(UPDATE_SELECTION, + ViewConfiguration.getTapTimeout()); } private void startDrag() { @@ -7194,10 +7200,15 @@ public class WebView extends AbsoluteLayout return mZoomManager.zoomOut(); } + /** + * This selects the best clickable target at mLastTouchX and mLastTouchY + * and calls showCursorTimed on the native side + */ private void updateSelection() { if (mNativeClass == 0) { return; } + mPrivateHandler.removeMessages(UPDATE_SELECTION); // mLastTouchX and mLastTouchY are the point in the current viewport int contentX = viewToContentX(mLastTouchX + mScrollX); int contentY = viewToContentY(mLastTouchY + mScrollY); @@ -7297,6 +7308,7 @@ public class WebView extends AbsoluteLayout return; } mTouchMode = TOUCH_DONE_MODE; + updateSelection(); switchOutDrawHistory(); // mLastTouchX and mLastTouchY are the point in the current viewport int contentX = viewToContentX(mLastTouchX + mScrollX); @@ -8187,6 +8199,14 @@ public class WebView extends AbsoluteLayout SCROLL_SELECT_TEXT, SELECT_SCROLL_INTERVAL); break; } + case UPDATE_SELECTION: { + if (mTouchMode == TOUCH_INIT_MODE + || mTouchMode == TOUCH_SHORTPRESS_MODE + || mTouchMode == TOUCH_SHORTPRESS_START_MODE) { + updateSelection(); + } + break; + } case SWITCH_TO_SHORTPRESS: { mInitialHitTestResult = null; // set by updateSelection() if (mTouchMode == TOUCH_INIT_MODE) { |