Loading services/core/java/com/android/server/wm/DragState.java +3 −0 Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ class DragState { * {@code true} when {@link #closeLocked()} is called. */ private boolean mIsClosing; IBinder mTransferTouchFromToken; DragState(WindowManagerService service, DragDropController controller, IBinder token, SurfaceControl surface, int flags, IBinder localWin) { Loading Loading @@ -177,6 +178,8 @@ class DragState { mTmpClipRect.set(0, 0, mDisplaySize.x, mDisplaySize.y); t.setWindowCrop(mInputSurface, mTmpClipRect); t.transferTouchFocus(mTransferTouchFromToken, h.token); mTransferTouchFromToken = null; } /** Loading services/core/java/com/android/server/wm/TaskPositioningController.java +6 −7 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.app.IActivityTaskManager; import android.graphics.Point; import android.graphics.Rect; import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.RemoteException; import android.util.Slog; Loading @@ -50,6 +51,7 @@ class TaskPositioningController { private @Nullable TaskPositioner mTaskPositioner; private final Rect mTmpClipRect = new Rect(); private IBinder mTransferTouchFromToken; boolean isPositioningLocked() { return mTaskPositioner != null; Loading Loading @@ -102,6 +104,8 @@ class TaskPositioningController { mTmpClipRect.set(0, 0, p.x, p.y); t.setWindowCrop(mInputSurface, mTmpClipRect); t.transferTouchFocus(mTransferTouchFromToken, h.token); mTransferTouchFromToken = null; } boolean startMovingTask(IWindow window, float startX, float startY) { Loading Loading @@ -170,7 +174,6 @@ class TaskPositioningController { mPositioningDisplay = displayContent; mTaskPositioner = TaskPositioner.create(mService); mTaskPositioner.register(displayContent); // We need to grab the touch focus so that the touch events during the // resizing/scrolling are not sent to the app. 'win' is the main window Loading @@ -181,12 +184,8 @@ class TaskPositioningController { && displayContent.mCurrentFocus.mAppToken == win.mAppToken) { transferFocusFromWin = displayContent.mCurrentFocus; } if (!mInputManager.transferTouchFocus( transferFocusFromWin.mInputChannel, mTaskPositioner.mServerChannel)) { Slog.e(TAG_WM, "startPositioningLocked: Unable to transfer touch focus"); cleanUpTaskPositioner(); return false; } mTransferTouchFromToken = transferFocusFromWin.mInputChannel.getToken(); mTaskPositioner.register(displayContent); mTaskPositioner.startDrag(win, resize, preserveOrientation, startX, startY); return true; Loading services/core/java/com/android/server/wm/WindowManagerInternal.java +2 −1 Original line number Diff line number Diff line Loading @@ -158,8 +158,9 @@ public abstract class WindowManagerInternal { default boolean registerInputChannel( DragState state, Display display, InputManagerService service, InputChannel source) { state.mTransferTouchFromToken = source.getToken(); state.register(display); return service.transferTouchFocus(source, state.getInputChannel()); return true; } /** Loading Loading
services/core/java/com/android/server/wm/DragState.java +3 −0 Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ class DragState { * {@code true} when {@link #closeLocked()} is called. */ private boolean mIsClosing; IBinder mTransferTouchFromToken; DragState(WindowManagerService service, DragDropController controller, IBinder token, SurfaceControl surface, int flags, IBinder localWin) { Loading Loading @@ -177,6 +178,8 @@ class DragState { mTmpClipRect.set(0, 0, mDisplaySize.x, mDisplaySize.y); t.setWindowCrop(mInputSurface, mTmpClipRect); t.transferTouchFocus(mTransferTouchFromToken, h.token); mTransferTouchFromToken = null; } /** Loading
services/core/java/com/android/server/wm/TaskPositioningController.java +6 −7 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.app.IActivityTaskManager; import android.graphics.Point; import android.graphics.Rect; import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.RemoteException; import android.util.Slog; Loading @@ -50,6 +51,7 @@ class TaskPositioningController { private @Nullable TaskPositioner mTaskPositioner; private final Rect mTmpClipRect = new Rect(); private IBinder mTransferTouchFromToken; boolean isPositioningLocked() { return mTaskPositioner != null; Loading Loading @@ -102,6 +104,8 @@ class TaskPositioningController { mTmpClipRect.set(0, 0, p.x, p.y); t.setWindowCrop(mInputSurface, mTmpClipRect); t.transferTouchFocus(mTransferTouchFromToken, h.token); mTransferTouchFromToken = null; } boolean startMovingTask(IWindow window, float startX, float startY) { Loading Loading @@ -170,7 +174,6 @@ class TaskPositioningController { mPositioningDisplay = displayContent; mTaskPositioner = TaskPositioner.create(mService); mTaskPositioner.register(displayContent); // We need to grab the touch focus so that the touch events during the // resizing/scrolling are not sent to the app. 'win' is the main window Loading @@ -181,12 +184,8 @@ class TaskPositioningController { && displayContent.mCurrentFocus.mAppToken == win.mAppToken) { transferFocusFromWin = displayContent.mCurrentFocus; } if (!mInputManager.transferTouchFocus( transferFocusFromWin.mInputChannel, mTaskPositioner.mServerChannel)) { Slog.e(TAG_WM, "startPositioningLocked: Unable to transfer touch focus"); cleanUpTaskPositioner(); return false; } mTransferTouchFromToken = transferFocusFromWin.mInputChannel.getToken(); mTaskPositioner.register(displayContent); mTaskPositioner.startDrag(win, resize, preserveOrientation, startX, startY); return true; Loading
services/core/java/com/android/server/wm/WindowManagerInternal.java +2 −1 Original line number Diff line number Diff line Loading @@ -158,8 +158,9 @@ public abstract class WindowManagerInternal { default boolean registerInputChannel( DragState state, Display display, InputManagerService service, InputChannel source) { state.mTransferTouchFromToken = source.getToken(); state.register(display); return service.transferTouchFocus(source, state.getInputChannel()); return true; } /** Loading