diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 6238b7229002a..2aa481ce379a8 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -4004,9 +4004,12 @@ public class WebView extends AbsoluteLayout // state. // If mNativeClass is 0, we should not reach here, so we do not // need to check it again. - nativeRecordButtons(hasFocus() && hasWindowFocus(), - mTouchMode == TOUCH_SHORTPRESS_START_MODE - || mTrackballDown || mGotCenterDown, false); + if (mDrawCursorRing && drawRings) { + // Only update if we are actually going to use the result + nativeRecordButtons(hasFocus() && hasWindowFocus(), + mTouchMode == TOUCH_SHORTPRESS_START_MODE + || mTrackballDown || mGotCenterDown, false); + } drawCoreAndCursorRing(canvas, mBackgroundColor, mDrawCursorRing && drawRings); } @@ -4075,7 +4078,8 @@ public class WebView extends AbsoluteLayout boolean drawJavaRings = !mTouchHighlightRegion.isEmpty() && (mTouchMode == TOUCH_INIT_MODE || mTouchMode == TOUCH_SHORTPRESS_START_MODE - || mTouchMode == TOUCH_SHORTPRESS_MODE); + || mTouchMode == TOUCH_SHORTPRESS_MODE + || mTouchMode == TOUCH_DONE_MODE); boolean drawNativeRings = !drawJavaRings; if (USE_WEBKIT_RINGS) { drawNativeRings = !drawJavaRings && !isInTouchMode();