Fix issue where crosshairs wouldn't disappear (issue 5190654)
Change-Id: Id5fc7257021b20680fec1f2c215d95dac425d4d4
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 83408ba..f372083 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -132,6 +132,7 @@
* The CellLayout that is currently being dragged over
*/
private CellLayout mDragTargetLayout = null;
+ private boolean mDragHasEnteredWorkspace = false;
private Launcher mLauncher;
private IconCache mIconCache;
@@ -2333,6 +2334,7 @@
}
public void onDragEnter(DragObject d) {
+ mDragHasEnteredWorkspace = true;
if (mDragTargetLayout != null) {
mDragTargetLayout.setIsDragOverlapping(false);
mDragTargetLayout.onDragExit();
@@ -2368,6 +2370,7 @@
}
public void onDragExit(DragObject d) {
+ mDragHasEnteredWorkspace = false;
doDragExit(d);
}
@@ -3237,16 +3240,17 @@
boolean result = false;
if (mInScrollArea) {
if (mDragTargetLayout != null) {
- // Unmark the overlapping layout and re-enter the current layout
mDragTargetLayout.setIsDragOverlapping(false);
- mDragTargetLayout = getCurrentDropLayout();
- mDragTargetLayout.onDragEnter();
-
// Workspace is responsible for drawing the edge glow on adjacent pages,
// so we need to redraw the workspace when this may have changed.
invalidate();
- result = true;
}
+ if (mDragTargetLayout != null && mDragHasEnteredWorkspace) {
+ // Unmark the overlapping layout and re-enter the current layout
+ mDragTargetLayout = getCurrentDropLayout();
+ mDragTargetLayout.onDragEnter();
+ }
+ result = true;
mInScrollArea = false;
}
return result;