From 7d86378b0c3a02499a5a9aab35851424ffa57bd8 Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Tue, 15 Feb 2011 15:05:03 -0800 Subject: [PATCH] Fix bug 3362273 - Make overscroll glow appear within padding region Change-Id: I3c6513ada6bdd192c83f3ff59a2c85717156de22 --- core/java/android/widget/AbsListView.java | 10 ++++++---- core/java/android/widget/HorizontalScrollView.java | 10 +++++----- core/java/android/widget/ScrollView.java | 9 +++++---- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 27020c533f294..eb53e56b4b0d4 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -3267,9 +3267,10 @@ public abstract class AbsListView extends AdapterView implements Te final int scrollY = mScrollY; if (!mEdgeGlowTop.isFinished()) { final int restoreCount = canvas.save(); - final int width = getWidth(); + final int width = getWidth() - mListPadding.left - mListPadding.right; - canvas.translate(0, Math.min(0, scrollY + mFirstPositionDistanceGuess)); + canvas.translate(mListPadding.left, + Math.min(0, scrollY + mFirstPositionDistanceGuess)); mEdgeGlowTop.setSize(width, getHeight()); if (mEdgeGlowTop.draw(canvas)) { invalidate(); @@ -3278,10 +3279,11 @@ public abstract class AbsListView extends AdapterView implements Te } if (!mEdgeGlowBottom.isFinished()) { final int restoreCount = canvas.save(); - final int width = getWidth(); + final int width = getWidth() - mListPadding.left - mListPadding.right; final int height = getHeight(); - canvas.translate(-width, Math.max(height, scrollY + mLastPositionDistanceGuess)); + canvas.translate(-width + mListPadding.left, + Math.max(height, scrollY + mLastPositionDistanceGuess)); canvas.rotate(180, width, 0); mEdgeGlowBottom.setSize(width, height); if (mEdgeGlowBottom.draw(canvas)) { diff --git a/core/java/android/widget/HorizontalScrollView.java b/core/java/android/widget/HorizontalScrollView.java index 13f0890c9d92b..d75748ff2cc8d 100644 --- a/core/java/android/widget/HorizontalScrollView.java +++ b/core/java/android/widget/HorizontalScrollView.java @@ -1422,11 +1422,11 @@ public class HorizontalScrollView extends FrameLayout { final int scrollX = mScrollX; if (!mEdgeGlowLeft.isFinished()) { final int restoreCount = canvas.save(); - final int height = getHeight(); + final int height = getHeight() - mPaddingTop - mPaddingBottom; canvas.rotate(270); - canvas.translate(-height, Math.min(0, scrollX)); - mEdgeGlowLeft.setSize(getHeight(), getWidth()); + canvas.translate(-height + mPaddingTop, Math.min(0, scrollX)); + mEdgeGlowLeft.setSize(height, getWidth()); if (mEdgeGlowLeft.draw(canvas)) { invalidate(); } @@ -1435,10 +1435,10 @@ public class HorizontalScrollView extends FrameLayout { if (!mEdgeGlowRight.isFinished()) { final int restoreCount = canvas.save(); final int width = getWidth(); - final int height = getHeight(); + final int height = getHeight() - mPaddingTop - mPaddingBottom; canvas.rotate(90); - canvas.translate(0, + canvas.translate(-mPaddingTop, -(Math.max(getScrollRange(), scrollX) + width)); mEdgeGlowRight.setSize(height, width); if (mEdgeGlowRight.draw(canvas)) { diff --git a/core/java/android/widget/ScrollView.java b/core/java/android/widget/ScrollView.java index d1cfcec6c1c9c..4cc4a2715027e 100644 --- a/core/java/android/widget/ScrollView.java +++ b/core/java/android/widget/ScrollView.java @@ -1470,9 +1470,9 @@ public class ScrollView extends FrameLayout { final int scrollY = mScrollY; if (!mEdgeGlowTop.isFinished()) { final int restoreCount = canvas.save(); - final int width = getWidth(); + final int width = getWidth() - mPaddingLeft - mPaddingRight; - canvas.translate(0, Math.min(0, scrollY)); + canvas.translate(mPaddingLeft, Math.min(0, scrollY)); mEdgeGlowTop.setSize(width, getHeight()); if (mEdgeGlowTop.draw(canvas)) { invalidate(); @@ -1481,10 +1481,11 @@ public class ScrollView extends FrameLayout { } if (!mEdgeGlowBottom.isFinished()) { final int restoreCount = canvas.save(); - final int width = getWidth(); + final int width = getWidth() - mPaddingLeft - mPaddingRight; final int height = getHeight(); - canvas.translate(-width, Math.max(getScrollRange(), scrollY) + height); + canvas.translate(-width + mPaddingLeft, + Math.max(getScrollRange(), scrollY) + height); canvas.rotate(180, width, 0); mEdgeGlowBottom.setSize(width, height); if (mEdgeGlowBottom.draw(canvas)) {