From f7b4accbda1a4d98a5fadbf3984cb9666a4fe9e9 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Tue, 1 Dec 2009 16:24:45 -0800 Subject: [PATCH] Fix scroll jump in ScrollView. If a touch event was targeted at a ScrollView child, the content would jump after the user moved her finger by the required threshold. This is inconsistent with ListView's behavior. Fixes #2296622. --- core/java/android/webkit/WebView.java | 7 +++++++ core/java/android/widget/ScrollView.java | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index add4ac774354c..6f15c123a683f 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -3990,6 +3990,13 @@ public class WebView extends AbsoluteLayout } mTouchMode = TOUCH_DRAG_MODE; + mLastTouchX = x; + mLastTouchY = y; + fDeltaX = 0.0f; + fDeltaY = 0.0f; + deltaX = 0; + deltaY = 0; + WebViewCore.pauseUpdate(mWebViewCore); if (!mDragFromTextInput) { nativeHideCursor(); diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index 24d97a5b98b5e..bf16e289075b2 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -51,8 +51,6 @@ import java.util.List; *

ScrollView only supports vertical scrolling. */ public class ScrollView extends FrameLayout { - static final String TAG = "ScrollView"; - static final int ANIMATED_SCROLL_GAP = 250; static final float MAX_SCROLL_FACTOR = 0.5f; @@ -401,6 +399,7 @@ public class ScrollView extends FrameLayout { final int yDiff = (int) Math.abs(y - mLastMotionY); if (yDiff > mTouchSlop) { mIsBeingDragged = true; + mLastMotionY = y; } break;