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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user