From 9b6578071fbe042b5a77f621d1bdc76e92720e48 Mon Sep 17 00:00:00 2001 From: Grace Kloba Date: Thu, 8 Apr 2010 13:46:23 -0700 Subject: [PATCH] Set mHeldMotionless to a new MOTIONLESS_IGNORE state for fling, this way we will trigger animateScroll during fling for the faster performance. We also avoid keep removing/sending DRAG_HELD_MOTIONLESS message during fling. Fix http://b/issue?id=2574172 --- core/java/android/webkit/WebView.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 61ff86cafd108..bbe52a3455537 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -475,6 +475,7 @@ public class WebView extends AbsoluteLayout private static final int MOTIONLESS_FALSE = 0; private static final int MOTIONLESS_PENDING = 1; private static final int MOTIONLESS_TRUE = 2; + private static final int MOTIONLESS_IGNORE = 3; private int mHeldMotionless; // whether support multi-touch @@ -4923,9 +4924,6 @@ public class WebView extends AbsoluteLayout case TOUCH_DRAG_MODE: mPrivateHandler.removeMessages(DRAG_HELD_MOTIONLESS); mPrivateHandler.removeMessages(AWAKEN_SCROLL_BARS); - mHeldMotionless = MOTIONLESS_TRUE; - // redraw in high-quality, as we're done dragging - invalidate(); // if the user waits a while w/o moving before the // up, we don't want to do a fling if (eventTime - mLastTouchTime <= MIN_FLING_TIME) { @@ -4937,9 +4935,16 @@ public class WebView extends AbsoluteLayout + mDeferTouchProcess); } mVelocityTracker.addMovement(ev); + // set to MOTIONLESS_IGNORE so that it won't keep + // removing and sending message in + // drawCoreAndCursorRing() + mHeldMotionless = MOTIONLESS_IGNORE; doFling(); break; } + // redraw in high-quality, as we're done dragging + mHeldMotionless = MOTIONLESS_TRUE; + invalidate(); // fall through case TOUCH_DRAG_START_MODE: // TOUCH_DRAG_START_MODE should not happen for the real