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
This commit is contained in:
Cary Clark
2009-09-08 14:15:07 -04:00
parent 377c5c15f8
commit aa7caa6032

View File

@@ -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;