OSDN Git Service

Fixing issue where dropping on the system bar would not properly cancel the drag.
authorWinson Chung <winsonc@google.com>
Fri, 12 Nov 2010 20:10:35 +0000 (12:10 -0800)
committerWinson Chung <winsonc@google.com>
Fri, 12 Nov 2010 22:59:59 +0000 (14:59 -0800)
Change-Id: I3d920cabb99216c222d5c419374527068f1947d0

src/com/android/launcher2/DragController.java
src/com/android/launcher2/Workspace.java

index 3c956f0..d796fbe 100644 (file)
@@ -584,6 +584,8 @@ public class DragController {
                 mDragSource.onDropCompleted((View) dropTarget, false);
                 return true;
             }
+        } else {
+            mDragSource.onDropCompleted(null, false);
         }
         return false;
     }
index 3823cc1..eac9ebd 100644 (file)
@@ -56,6 +56,7 @@ import android.os.Parcelable;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.util.Pair;
+import android.view.Display;
 import android.view.DragEvent;
 import android.view.MotionEvent;
 import android.view.View;
@@ -1768,6 +1769,14 @@ public class Workspace extends SmoothPagedView
         onDropExternal(x, y, dragInfo, cellLayout, false);
     }
 
+    @Override
+    public void getHitRect(Rect outRect) {
+        // We want the workspace to have the whole area of the display (it will find the correct
+        // cell layout to drop to in the existing drag/drop logic.
+        final Display d = mLauncher.getWindowManager().getDefaultDisplay();
+        outRect.set(0, 0, d.getWidth(), d.getHeight());
+    }
+
     /**
      * Add the item specified by dragInfo to the given layout.
      * This is basically the equivalent of onDropExternal, except it's not initiated