Ensure drag outline & crosshairs disappear on drag cancel

Change-Id: I165d45846c0bfe74eda0d61b55e5b93fbfccdef2
This commit is contained in:
Patrick Dubroy
2011-01-20 10:43:40 -08:00
parent 8d60f2c204
commit e3887cc4ec
3 changed files with 16 additions and 7 deletions
+14 -4
View File
@@ -2398,8 +2398,7 @@ public class Workspace extends SmoothPagedView
}
}
public void onDragExit(DragSource source, int x, int y, int xOffset,
int yOffset, DragView dragView, Object dragInfo) {
private void doDragExit() {
mWasSpringLoadedOnDragExit = mShrinkState == ShrinkState.SPRING_LOADED;
if (mDragTargetLayout != null) {
mDragTargetLayout.onDragExit();
@@ -2413,6 +2412,11 @@ public class Workspace extends SmoothPagedView
clearAllHovers();
}
public void onDragExit(DragSource source, int x, int y, int xOffset,
int yOffset, DragView dragView, Object dragInfo) {
doDragExit();
}
@Override
public void getHitRect(Rect outRect) {
// We want the workspace to have the whole area of the display (it will find the correct
@@ -2560,6 +2564,9 @@ public class Workspace extends SmoothPagedView
mDragController = dragController;
}
/**
* Called at the end of a drag which originated on the workspace.
*/
public void onDropCompleted(View target, boolean success) {
if (success) {
if (target != this && mDragInfo != null) {
@@ -2571,8 +2578,11 @@ public class Workspace extends SmoothPagedView
// final Object tag = mDragInfo.cell.getTag();
}
} else if (mDragInfo != null) {
boolean animateDrop = !mWasSpringLoadedOnDragExit;
((CellLayout) getChildAt(mDragInfo.screen)).onDropChild(mDragInfo.cell, animateDrop);
// NOTE: When 'success' is true, onDragExit is called by the DragController before
// calling onDropCompleted(). We call it ourselves here, but maybe this should be
// moved into DragController.cancelDrag().
doDragExit();
((CellLayout) getChildAt(mDragInfo.screen)).onDropChild(mDragInfo.cell, false);
}
mLauncher.unlockScreenOrientation();
mDragOutline = null;