diff options
-rw-r--r-- | core/java/android/view/DragEvent.java | 7 | ||||
-rw-r--r-- | core/java/android/view/ViewRoot.java | 7 |
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); } |