Merge "Tap highlight fix + small perf increase"
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 6238b72..2aa481c 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -4004,9 +4004,12 @@
         // 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 @@
         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();