From 741f63b4ecc9e4d02888d22253fc88ecc3bebe4b Mon Sep 17 00:00:00 2001 From: Arthur Hung Date: Thu, 10 Feb 2022 04:30:39 +0000 Subject: Fix drag shadow does not render on screen when perform drag (1/2) The drag shadow had been drawn in app process, we have to call `DragState.updateDragSufraceLocked` so it could update the current location and apply drag state's transaction directly. Bug: 217279780 Test: atest DragDropTest Change-Id: I97e74252e98cac0e6941bed58c8a64ae68cb6132 --- services/core/java/com/android/server/wm/DragDropController.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/DragDropController.java b/services/core/java/com/android/server/wm/DragDropController.java index e0887e1f1970..4ce058153003 100644 --- a/services/core/java/com/android/server/wm/DragDropController.java +++ b/services/core/java/com/android/server/wm/DragDropController.java @@ -179,11 +179,9 @@ class DragDropController { final SurfaceControl.Transaction transaction = mDragState.mTransaction; transaction.setAlpha(surfaceControl, mDragState.mOriginalAlpha); - transaction.setPosition( - surfaceControl, touchX - thumbCenterX, touchY - thumbCenterY); transaction.show(surfaceControl); displayContent.reparentToOverlay(transaction, surfaceControl); - callingWin.scheduleAnimation(); + mDragState.updateDragSurfaceLocked(true, touchX, touchY); if (SHOW_LIGHT_TRANSACTIONS) { Slog.i(TAG_WM, "<<< CLOSE TRANSACTION performDrag"); } -- cgit v1.2.3-59-g8ed1b