From aa7caa60324d69b5cd7bf3cbd8eeac2a63ad7a99 Mon Sep 17 00:00:00 2001 From: Cary Clark Date: Tue, 8 Sep 2009 14:15:07 -0400 Subject: [PATCH] don't fling if there's nowhere to go Add a test to doFling() to return quickly if the fling has no effect. For simplicity, only test for horizontal or vertical flings. The man purpose is to avoid suspending webkit until the fling animation is complete when the purpose of the touch drag is to activate a touch event, like a swipe in superpudu. fixes http://b/issue?id=2052852 --- core/java/android/webkit/WebView.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index db6966a17bfa2..8a986fa865e46 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -4605,6 +4605,10 @@ public class WebView extends AbsoluteLayout vx = vx * 3 / 4; vy = vy * 3 / 4; } + if ((maxX == 0 && vy == 0) || (maxY == 0 && vx == 0)) { + WebViewCore.resumeUpdate(mWebViewCore); + return; + } float currentVelocity = mScroller.getCurrVelocity(); if (mLastVelocity > 0 && currentVelocity > 0) { float deltaR = (float) (Math.abs(Math.atan2(mLastVelY, mLastVelX) @@ -4621,7 +4625,10 @@ public class WebView extends AbsoluteLayout } } else if (DebugFlags.WEB_VIEW) { Log.v(LOGTAG, "doFling start last=" + mLastVelocity - + " current=" + currentVelocity); + + " current=" + currentVelocity + + " vx=" + vx + " vy=" + vy + + " maxX=" + maxX + " maxY=" + maxY + + " mScrollX=" + mScrollX + " mScrollY=" + mScrollY); } mLastVelX = vx; mLastVelY = vy;