diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java index f7d9f0e494..456856237a 100644 --- a/src/com/android/launcher2/AllAppsPagedView.java +++ b/src/com/android/launcher2/AllAppsPagedView.java @@ -234,10 +234,8 @@ public class AllAppsPagedView extends PagedViewWithDraggableItems implements All @Override protected boolean beginDragging(View v) { - if (!v.isInTouchMode()) { - return false; - } - super.beginDragging(v); + if (!v.isInTouchMode()) return false; + if (!super.beginDragging(v)) return false; // Start drag mode after the item is selected setupDragMode(); diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java index 0b874bc11e..6a563f28b9 100644 --- a/src/com/android/launcher2/CustomizePagedView.java +++ b/src/com/android/launcher2/CustomizePagedView.java @@ -492,12 +492,13 @@ public class CustomizePagedView extends PagedViewWithDraggableItems } protected boolean beginDragging(View v) { + if (!v.isInTouchMode()) return false; + if (!super.beginDragging(v)) return false; + // End the current choice mode before we start dragging anything if (isChoiceMode(CHOICE_MODE_SINGLE)) { endChoiceMode(); } - super.beginDragging(v); - boolean result = false; switch (mCustomizationType) { case WidgetCustomization: { diff --git a/src/com/android/launcher2/DragController.java b/src/com/android/launcher2/DragController.java index 0f24cd9e22..b45603094b 100644 --- a/src/com/android/launcher2/DragController.java +++ b/src/com/android/launcher2/DragController.java @@ -390,6 +390,10 @@ public class DragController { return mDragging; } + public boolean isDragging() { + return mDragging; + } + /** * Stop dragging without dropping. */ diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index 1ec326b2f0..7faa5200de 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -2221,7 +2221,7 @@ public final class Launcher extends Activity final View itemUnderLongClick = longClickCellInfo.cell; - if (mWorkspace.allowLongPress()) { + if (mWorkspace.allowLongPress() && !mDragController.isDragging()) { if (itemUnderLongClick == null) { // User long pressed on empty space mWorkspace.setAllowLongPress(false); diff --git a/src/com/android/launcher2/PagedViewWithDraggableItems.java b/src/com/android/launcher2/PagedViewWithDraggableItems.java index b1f199b4e2..f24d7e05d7 100644 --- a/src/com/android/launcher2/PagedViewWithDraggableItems.java +++ b/src/com/android/launcher2/PagedViewWithDraggableItems.java @@ -50,8 +50,9 @@ public abstract class PagedViewWithDraggableItems extends PagedView } protected boolean beginDragging(View v) { + boolean wasDragging = mIsDragging; mIsDragging = true; - return false; + return !wasDragging; } protected void cancelDragging() {