From c2f08d83da75088a3ceafde9322c1bcaa70ad801 Mon Sep 17 00:00:00 2001 From: Arthur Hung Date: Tue, 14 Sep 2021 08:01:58 +0000 Subject: [PATCH] Fix wrong coordinate for DRAG_STARTED We should translate touch (x, y) to window coordinate. Bug: 198531521 Test: atest DragDropTest Change-Id: Ib0521dbc45eae2462c73d597d2ce89b75c56f205 --- services/core/java/com/android/server/wm/DragState.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java index 18ea738b08ce1..aa257f847e251 100644 --- a/services/core/java/com/android/server/wm/DragState.java +++ b/services/core/java/com/android/server/wm/DragState.java @@ -464,7 +464,8 @@ class DragState { if (mDragInProgress && isValidDropTarget(newWin, containsAppExtras, interceptsGlobalDrag)) { // Only allow the extras to be dispatched to a global-intercepting drag target ClipData data = interceptsGlobalDrag ? mData.copyForTransferWithActivityInfo() : null; - DragEvent event = obtainDragEvent(DragEvent.ACTION_DRAG_STARTED, touchX, touchY, + DragEvent event = obtainDragEvent(DragEvent.ACTION_DRAG_STARTED, + newWin.translateToWindowX(touchX), newWin.translateToWindowY(touchY), data, false /* includeDragSurface */, null /* dragAndDropPermission */); try {