Fix bug where overscroll never fully snapped back
Bug: 6085652
Bug: 6065523
Change-Id: Iaac5705e00e08882beba0cad7ee0d339de31444a
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 8a2a5a0..604e73c 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -396,7 +396,9 @@
protected boolean computeScrollHelper() {
if (mScroller.computeScrollOffset()) {
// Don't bother scrolling if the page does not need to be moved
- if (mScrollX != mScroller.getCurrX() || mScrollY != mScroller.getCurrY()) {
+ if (mScrollX != mScroller.getCurrX()
+ || mScrollY != mScroller.getCurrY()
+ || mOverScrollX != mScroller.getCurrX()) {
scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
}
invalidate();
@@ -755,9 +757,11 @@
int screenCenter = mOverScrollX + halfScreenSize;
if (screenCenter != mLastScreenCenter || mForceScreenScrolled) {
+ // set mForceScreenScrolled before calling screenScrolled so that screenScrolled can
+ // set it for the next frame
+ mForceScreenScrolled = false;
screenScrolled(screenCenter);
mLastScreenCenter = screenCenter;
- mForceScreenScrolled = false;
}
// Find out which screens are visible; as an optimization we only call draw on them