diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java index 25ff023a664bd..0b28ba2bb1465 100644 --- a/services/core/java/com/android/server/wm/DragState.java +++ b/services/core/java/com/android/server/wm/DragState.java @@ -228,8 +228,8 @@ class DragState { SurfaceControl dragSurface = null; if (!mDragResult && (ws.mSession.mPid == mPid)) { // Report unconsumed drop location back to the app that started the drag. - x = mCurrentX; - y = mCurrentY; + x = ws.translateToWindowX(mCurrentX); + y = ws.translateToWindowY(mCurrentY); if (relinquishDragSurfaceToDragSource()) { // If requested (and allowed), report the drag surface back to the app // starting the drag to handle the return animation diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index df7b8bb4ec9b0..b2b3b8c0aabf5 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -4562,7 +4562,7 @@ class WindowState extends WindowContainer implements WindowManagerP float translateToWindowX(float x) { float winX = x - mWindowFrames.mFrame.left; if (mGlobalScale != 1f) { - winX *= mGlobalScale; + winX *= mInvGlobalScale; } return winX; } @@ -4570,7 +4570,7 @@ class WindowState extends WindowContainer implements WindowManagerP float translateToWindowY(float y) { float winY = y - mWindowFrames.mFrame.top; if (mGlobalScale != 1f) { - winY *= mGlobalScale; + winY *= mInvGlobalScale; } return winY; }