Merge "Fix drag surface would be stuck (1/2)" into qt-qpr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
556bdce162
@@ -113,7 +113,7 @@ class DragDropController {
|
||||
|
||||
final WindowState callingWin = mService.windowForClientLocked(
|
||||
null, window, false);
|
||||
if (callingWin == null) {
|
||||
if (callingWin == null || callingWin.cantReceiveTouchInput()) {
|
||||
Slog.w(TAG_WM, "Bad requesting window " + window);
|
||||
return null; // !!! TODO: throw here?
|
||||
}
|
||||
@@ -167,8 +167,7 @@ class DragDropController {
|
||||
final SurfaceControl surfaceControl = mDragState.mSurfaceControl;
|
||||
if (SHOW_LIGHT_TRANSACTIONS) Slog.i(TAG_WM, ">>> OPEN TRANSACTION performDrag");
|
||||
|
||||
final SurfaceControl.Transaction transaction =
|
||||
callingWin.getPendingTransaction();
|
||||
final SurfaceControl.Transaction transaction = mDragState.mTransaction;
|
||||
transaction.setAlpha(surfaceControl, mDragState.mOriginalAlpha);
|
||||
transaction.setPosition(
|
||||
surfaceControl, touchX - thumbCenterX, touchY - thumbCenterY);
|
||||
|
||||
@@ -120,7 +120,7 @@ class DragState {
|
||||
// A surface used to catch input events for the drag-and-drop operation.
|
||||
SurfaceControl mInputSurface;
|
||||
|
||||
private final SurfaceControl.Transaction mTransaction;
|
||||
final SurfaceControl.Transaction mTransaction;
|
||||
|
||||
private final Rect mTmpClipRect = new Rect();
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ import android.view.InputDevice;
|
||||
import android.view.InputEvent;
|
||||
import android.view.InputWindowHandle;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.SurfaceControl;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
@@ -307,7 +308,8 @@ class TaskPositioner implements IBinder.DeathRecipient {
|
||||
mDisplayContent.pauseRotationLocked();
|
||||
|
||||
// Notify InputMonitor to take mDragWindowHandle.
|
||||
mDisplayContent.getInputMonitor().updateInputWindowsLw(true /*force*/);
|
||||
mDisplayContent.getInputMonitor().updateInputWindowsImmediately();
|
||||
new SurfaceControl.Transaction().syncInputWindows().apply();
|
||||
|
||||
mSideMargin = dipToPixel(SIDE_MARGIN_DIP, mDisplayMetrics);
|
||||
mMinVisibleWidth = dipToPixel(MINIMUM_VISIBLE_WIDTH_IN_DP, mDisplayMetrics);
|
||||
|
||||
Reference in New Issue
Block a user