From fea57edf0dd27bc21c34e7f96cd6383d6f2dff42 Mon Sep 17 00:00:00 2001 From: Marco Nelissen Date: Tue, 26 May 2009 14:20:35 -0700 Subject: Fix crash in GestureOverlayView --- core/java/android/widget/AbsListView.java | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) (limited to 'core/java') diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index ccb876f..e896d58 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -755,19 +755,21 @@ public abstract class AbsListView extends AdapterView implements Te if (ev.getAction() != MotionEvent.ACTION_DOWN || mFastScroller == null || !mFastScroller.isPointInside(ev.getX(), ev.getY())) { - mGesturesOverlay.dispatchTouchEvent(ev); - - final boolean isGesturing = mGesturesOverlay.isGesturing(); - - if (!isGesturing) { - mPreviousGesturing = isGesturing; - return super.dispatchTouchEvent(ev); - } else if (!mPreviousGesturing){ - mPreviousGesturing = isGesturing; - final MotionEvent event = MotionEvent.obtain(ev); - event.setAction(MotionEvent.ACTION_CANCEL); - super.dispatchTouchEvent(event); - return true; + if (mGesturesPopup.isShowing()) { + mGesturesOverlay.dispatchTouchEvent(ev); + + final boolean isGesturing = mGesturesOverlay.isGesturing(); + + if (!isGesturing) { + mPreviousGesturing = isGesturing; + return super.dispatchTouchEvent(ev); + } else if (!mPreviousGesturing){ + mPreviousGesturing = isGesturing; + final MotionEvent event = MotionEvent.obtain(ev); + event.setAction(MotionEvent.ACTION_CANCEL); + super.dispatchTouchEvent(event); + return true; + } } } } @@ -1927,6 +1929,8 @@ public abstract class AbsListView extends AdapterView implements Te final int longPressPosition, final long longPressId) { boolean handled = false; + dismissGesturesPopup(); + if (mOnItemLongClickListener != null) { handled = mOnItemLongClickListener.onItemLongClick(AbsListView.this, child, longPressPosition, longPressId); -- cgit v1.1