diff --git a/src/com/android/launcher3/folder/FolderIcon.java b/src/com/android/launcher3/folder/FolderIcon.java index 75275b20e5..32d061cb42 100644 --- a/src/com/android/launcher3/folder/FolderIcon.java +++ b/src/com/android/launcher3/folder/FolderIcon.java @@ -129,6 +129,8 @@ public class FolderIcon extends FrameLayout implements FolderListener, IconLabel private float mDotScale; private Animator mDotScaleAnim; + private Rect mTouchArea = new Rect(); + private final PointF mTranslationForReorderBounce = new PointF(0, 0); private final PointF mTranslationForReorderPreview = new PointF(0, 0); private float mScaleForReorderBounce = 1f; @@ -711,6 +713,11 @@ public class FolderIcon extends FrameLayout implements FolderListener, IconLabel @Override public boolean onTouchEvent(MotionEvent event) { + if (event.getAction() == MotionEvent.ACTION_DOWN + && shouldIgnoreTouchDown(event.getX(), event.getY())) { + return false; + } + // Call the superclass onTouchEvent first, because sometimes it changes the state to // isPressed() on an ACTION_UP super.onTouchEvent(event); @@ -719,6 +726,15 @@ public class FolderIcon extends FrameLayout implements FolderListener, IconLabel return true; } + /** + * Returns true if the touch down at the provided position be ignored + */ + protected boolean shouldIgnoreTouchDown(float x, float y) { + mTouchArea.set(getPaddingLeft(), getPaddingTop(), getWidth() - getPaddingRight(), + getHeight() - getPaddingBottom()); + return !mTouchArea.contains((int) x, (int) y); + } + @Override public void cancelLongPress() { super.cancelLongPress();