summaryrefslogtreecommitdiffstats
path: root/policy/src
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2012-11-26 17:05:37 -0800
committerWinson Chung <winsonc@google.com>2012-11-26 17:06:34 -0800
commit1272e0e37b9f1aad4749543be97a1a3a6483abf0 (patch)
tree412325d065262b6568f019ceb1eef49d892fdc16 /policy/src
parent7be52cbc33157e4700b7d04e69d1149cd80e9096 (diff)
downloadframeworks_base-1272e0e37b9f1aad4749543be97a1a3a6483abf0.zip
frameworks_base-1272e0e37b9f1aad4749543be97a1a3a6483abf0.tar.gz
frameworks_base-1272e0e37b9f1aad4749543be97a1a3a6483abf0.tar.bz2
Fixing issue where you can still click on a widget on a side page. (Bug 7568412)
Change-Id: I7105bc6b06e850e6029d12b0fe36fad00b538e1a
Diffstat (limited to 'policy/src')
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/PagedView.java27
1 files changed, 17 insertions, 10 deletions
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java b/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java
index 33c2456..539ec1a 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/PagedView.java
@@ -1019,15 +1019,22 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
return (x > (getViewportOffsetX() + getViewportWidth() - getRelativeChildOffset(mCurrentPage) + mPageSpacing));
}
- /** Returns whether x and y originated within the buffered/unbuffered viewport */
- private boolean isTouchPointInViewport(int x, int y, boolean buffer) {
- if (buffer) {
- mTmpRect.set(mViewport.left - mViewport.width() / 2, mViewport.top,
- mViewport.right + mViewport.width() / 2, mViewport.bottom);
+ /** Returns whether x and y originated within the buffered viewport */
+ private boolean isTouchPointInViewportWithBuffer(int x, int y) {
+ mTmpRect.set(mViewport.left - mViewport.width() / 2, mViewport.top,
+ mViewport.right + mViewport.width() / 2, mViewport.bottom);
+ return mTmpRect.contains(x, y);
+ }
+
+ /** Returns whether x and y originated within the current page view bounds */
+ private boolean isTouchPointInCurrentPage(int x, int y) {
+ View v = getPageAt(getCurrentPage());
+ if (v != null) {
+ mTmpRect.set((v.getLeft() - getScrollX()), 0, (v.getRight() - getScrollX()),
+ v.getBottom());
return mTmpRect.contains(x, y);
- } else {
- return mViewport.contains(x, y);
}
+ return false;
}
@Override
@@ -1108,7 +1115,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
mTouchState = TOUCH_STATE_REST;
mScroller.abortAnimation();
} else {
- if (isTouchPointInViewport((int) mDownMotionX, (int) mDownMotionY, true)) {
+ if (isTouchPointInViewportWithBuffer((int) mDownMotionX, (int) mDownMotionY)) {
mTouchState = TOUCH_STATE_SCROLLING;
} else {
mTouchState = TOUCH_STATE_REST;
@@ -1135,7 +1142,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
case MotionEvent.ACTION_CANCEL:
resetTouchState();
// Just intercept the touch event on up if we tap outside the strict viewport
- if (!isTouchPointInViewport((int) mLastMotionX, (int) mLastMotionY, false)) {
+ if (!isTouchPointInCurrentPage((int) mLastMotionX, (int) mLastMotionY)) {
return true;
}
break;
@@ -1169,7 +1176,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
// Disallow scrolling if we started the gesture from outside the viewport
final float x = ev.getX(pointerIndex);
final float y = ev.getY(pointerIndex);
- if (!isTouchPointInViewport((int) x, (int) y, true)) return;
+ if (!isTouchPointInViewportWithBuffer((int) x, (int) y)) return;
// If we're only allowing edge swipes, we break out early if the down event wasn't
// at the edge.