summaryrefslogtreecommitdiffstats
path: root/android_webview/java/src/org/chromium
diff options
context:
space:
mode:
authorbenm@chromium.org <benm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-04 19:26:48 +0000
committerbenm@chromium.org <benm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-04 19:26:48 +0000
commit6df12299371a56fcd6f8c4401715482d37dac394 (patch)
tree32ce918b56386c8b9769bd579444cb71776a09f5 /android_webview/java/src/org/chromium
parent5417e2f6ab46c9fbc7031fa660e2d245418b1c2f (diff)
downloadchromium_src-6df12299371a56fcd6f8c4401715482d37dac394.zip
chromium_src-6df12299371a56fcd6f8c4401715482d37dac394.tar.gz
chromium_src-6df12299371a56fcd6f8c4401715482d37dac394.tar.bz2
[Android WebView] Suppress overscroll pulls
When there is no touch event taking place, suppress calls to onPull that may come in after the users finger has left the screen. BUG=391464 Review URL: https://codereview.chromium.org/366283004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@281432 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/java/src/org/chromium')
-rw-r--r--android_webview/java/src/org/chromium/android_webview/AwContents.java10
-rw-r--r--android_webview/java/src/org/chromium/android_webview/OverScrollGlow.java7
2 files changed, 15 insertions, 2 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index 61c392c..8497489 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -2274,8 +2274,14 @@ public class AwContents {
(int) Math.round(event.getY(actionIndex) / mDIPScale));
}
- if (mOverScrollGlow != null && event.getActionMasked() == MotionEvent.ACTION_UP) {
- mOverScrollGlow.releaseAll();
+ if (mOverScrollGlow != null) {
+ if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
+ mOverScrollGlow.setShouldPull(true);
+ } else if (event.getActionMasked() == MotionEvent.ACTION_UP ||
+ event.getActionMasked() == MotionEvent.ACTION_CANCEL) {
+ mOverScrollGlow.setShouldPull(false);
+ mOverScrollGlow.releaseAll();
+ }
}
return rv;
diff --git a/android_webview/java/src/org/chromium/android_webview/OverScrollGlow.java b/android_webview/java/src/org/chromium/android_webview/OverScrollGlow.java
index 958da9d..2ebc198 100644
--- a/android_webview/java/src/org/chromium/android_webview/OverScrollGlow.java
+++ b/android_webview/java/src/org/chromium/android_webview/OverScrollGlow.java
@@ -23,6 +23,8 @@ class OverScrollGlow {
private int mOverScrollDeltaX;
private int mOverScrollDeltaY;
+ private boolean mShouldPull;
+
public OverScrollGlow(Context context, View host) {
mHostView = host;
mEdgeGlowTop = new EdgeEffect(context);
@@ -31,6 +33,10 @@ class OverScrollGlow {
mEdgeGlowRight = new EdgeEffect(context);
}
+ public void setShouldPull(boolean shouldPull) {
+ mShouldPull = shouldPull;
+ }
+
/**
* Pull leftover touch scroll distance into one of the edge glows as appropriate.
*
@@ -42,6 +48,7 @@ class OverScrollGlow {
* @param maxY Maximum range for vertical scrolling
*/
public void pullGlow(int x, int y, int oldX, int oldY, int maxX, int maxY) {
+ if (!mShouldPull) return;
// Only show overscroll bars if there was no movement in any direction
// as a result of scrolling.
if (oldX == mHostView.getScrollX() && oldY == mHostView.getScrollY()) {