Merge "Enable global (cross-application) drag/drop"
diff --git a/api/current.xml b/api/current.xml
index 2a515a3..e8a6790 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -222056,6 +222056,17 @@
  visibility="public"
 >
 </method>
+<field name="DRAG_FLAG_GLOBAL"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="1"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="DRAWING_CACHE_QUALITY_AUTO"
  type="int"
  transient="false"
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 2df7198..5aa2f1a 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -2279,8 +2279,10 @@
     boolean mCanAcceptDrop;
 
     /**
-     * Flag indicating that a drag can cross window boundaries
-     * @hide
+     * Flag indicating that a drag can cross window boundaries.  When
+     * {@link #startDrag(ClipData, DragShadowBuilder, Object, int)} is called
+     * with this flag set, all visible applications will be able to participate
+     * in the drag operation and receive the dragged content.
      */
     public static final int DRAG_FLAG_GLOBAL = 1;
 
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index faaa28d7..8f2a84e 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -5804,8 +5804,7 @@
                         outSurface.copyFrom(surface);
                         final IBinder winBinder = window.asBinder();
                         token = new Binder();
-                        // TODO: preserve flags param in DragState
-                        mDragState = new DragState(token, surface, 0, winBinder);
+                        mDragState = new DragState(token, surface, flags, winBinder);
                         mDragState.mSurface = surface;
                         token = mDragState.mToken = new Binder();