summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/DragEvent.java7
-rw-r--r--core/java/android/view/ViewRoot.java7
2 files changed, 8 insertions, 6 deletions
diff --git a/core/java/android/view/DragEvent.java b/core/java/android/view/DragEvent.java
index 25b680e..4d83891 100644
--- a/core/java/android/view/DragEvent.java
+++ b/core/java/android/view/DragEvent.java
@@ -130,12 +130,13 @@ public static final int ACTION_DRAG_EXITED = 6;
}
private void init(int action, float x, float y, ClipDescription description, ClipData data,
- boolean result) {
+ Object localState, boolean result) {
mAction = action;
mX = x;
mY = y;
mClipDescription = description;
mClipData = data;
+ mLocalState = localState;
mDragResult = result;
}
@@ -150,7 +151,7 @@ public static final int ACTION_DRAG_EXITED = 6;
synchronized (gRecyclerLock) {
if (gRecyclerTop == null) {
ev = new DragEvent();
- ev.init(action, x, y, description, data, result);
+ ev.init(action, x, y, description, data, localState, result);
return ev;
}
ev = gRecyclerTop;
@@ -161,7 +162,7 @@ public static final int ACTION_DRAG_EXITED = 6;
ev.mRecycled = false;
ev.mNext = null;
- ev.init(action, x, y, description, data, result);
+ ev.init(action, x, y, description, data, localState, result);
return ev;
}
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index 97983ba..2c6ec71 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -228,7 +228,7 @@ public final class ViewRoot extends Handler implements ViewParent,
/* Drag/drop */
ClipDescription mDragDescription;
View mCurrentDragView;
- Object mLocalDragState;
+ volatile Object mLocalDragState;
final PointF mDragPoint = new PointF();
final PointF mLastTouchPoint = new PointF();
@@ -2051,7 +2051,9 @@ public final class ViewRoot extends Handler implements ViewParent,
} break;
case DISPATCH_DRAG_EVENT:
case DISPATCH_DRAG_LOCATION_EVENT: {
- handleDragEvent((DragEvent)msg.obj);
+ DragEvent event = (DragEvent)msg.obj;
+ event.mLocalState = mLocalDragState; // only present when this app called startDrag()
+ handleDragEvent(event);
} break;
}
}
@@ -3133,7 +3135,6 @@ public final class ViewRoot extends Handler implements ViewParent,
} else {
what = DISPATCH_DRAG_EVENT;
}
- event.mLocalState = mLocalDragState; // only present when this app called startDrag()
Message msg = obtainMessage(what, event);
sendMessage(msg);
}