diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 8f0fddea9c..5bb4f7512c 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -2557,11 +2557,14 @@ public class Launcher extends Activity if (v instanceof Workspace) { if (!mWorkspace.isInOverviewMode()) { - mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, - HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); - mWorkspace.enterOverviewMode(); + if (mWorkspace.enterOverviewMode()) { + mWorkspace.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, + HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING); + return true; + } else { + return false; + } } - return true; } if (!(v instanceof CellLayout)) { diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 1ae2943f6c..42f3cace6d 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -1316,13 +1316,13 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc */ if (mActivePointerId != INVALID_POINTER) { determineScrollingStart(ev); - break; } // if mActivePointerId is INVALID_POINTER, then we must have missed an ACTION_DOWN // event. in that case, treat the first occurence of a move event as a ACTION_DOWN // i.e. fall through to the next case (don't break) // (We sometimes miss ACTION_DOWN events in Workspace because it ignores all events // while it's small- this was causing a crash before we checked for INVALID_POINTER) + break; } case MotionEvent.ACTION_DOWN: { @@ -2373,7 +2373,10 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } public boolean startReordering(View v) { - int dragViewIndex = indexOfChild(v);//getPageNearestToCenterOfScreen(); + int dragViewIndex = indexOfChild(v); + + if (mTouchState != TOUCH_STATE_REST) return false; + mTempVisiblePagesRange[0] = 0; mTempVisiblePagesRange[1] = getPageCount() - 1; getOverviewModePages(mTempVisiblePagesRange); diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index ada41a0006..dcf10697ee 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1781,9 +1781,13 @@ public class Workspace extends SmoothPagedView return mState == State.OVERVIEW; } - public void enterOverviewMode() { + public boolean enterOverviewMode() { + if (mTouchState != TOUCH_STATE_REST) { + return false; + } mLauncher.onInteractionBegin(); enableOverviewMode(true, -1, true); + return true; } public void exitOverviewMode(boolean animated) {