Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java +3 −3 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel, FocusT decoration.relayout(taskInfo, startT, finishT, false /* applyStartTransactionOnDraw */, false /* setTaskCropAndPosition */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mExclusionRegion, /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, taskSurface); } } Loading @@ -272,7 +272,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel, FocusT decoration.relayout(taskInfo, startT, finishT, false /* applyStartTransactionOnDraw */, false /* setTaskCropAndPosition */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mExclusionRegion, /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, /* taskSurface */ null); } @Override Loading Loading @@ -372,7 +372,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel, FocusT windowDecoration.relayout(taskInfo, startT, finishT, false /* applyStartTransactionOnDraw */, false /* setTaskCropAndPosition */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mExclusionRegion, /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, taskSurface); } private class CaptionTouchEventListener implements Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DefaultWindowDecoration.kt +3 −1 Original line number Diff line number Diff line Loading @@ -307,6 +307,7 @@ constructor( hasGlobalFocus, displayExclusionRegion, inSyncWithTransition = false, taskSurface, ) if (!applyTransactionOnDraw) { t.apply() Loading @@ -323,6 +324,7 @@ constructor( hasGlobalFocus: Boolean, displayExclusionRegion: Region, inSyncWithTransition: Boolean, taskSurface: SurfaceControl?, ) = traceSection("DefaultWindowDecoration#relayout") { if (DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_APP_TO_WEB.isTrue) { Loading Loading @@ -356,7 +358,7 @@ constructor( ) val wct = windowContainerTransactionSupplier.invoke() relayout(relayoutParams, startT, finishT, wct) relayout(relayoutParams, startT, finishT, wct, taskSurface) // After this line, taskInfo is up-to-date and should be used instead of taskInfo if (!wct.isEmpty) { Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +3 −3 Original line number Diff line number Diff line Loading @@ -657,7 +657,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, false /* shouldSetTaskPositionAndCrop */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mGestureExclusionTracker.getExclusionRegion(taskInfo.displayId), /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, taskSurface); } } Loading Loading @@ -732,7 +732,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, false /* shouldSetTaskPositionAndCrop */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mGestureExclusionTracker.getExclusionRegion(taskInfo.displayId), /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, /* taskSurface */ null); } @Override Loading Loading @@ -2161,7 +2161,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, false /* applyStartTransactionOnDraw */, false /* shouldSetTaskPositionAndCrop */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mGestureExclusionTracker.getExclusionRegion(taskInfo.displayId), /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, taskSurface); if (!DesktopModeFlags.ENABLE_HANDLE_INPUT_FIX.isTrue()) { incrementEventReceiverTasks(taskInfo.displayId); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration2.kt +19 −2 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ abstract class WindowDecoration2<T>( private val context: Context, private val displayController: DisplayController, taskSurface: SurfaceControl, surfaceControlSupplier: () -> SurfaceControl, private val surfaceControlSupplier: () -> SurfaceControl, private val taskOrganizer: ShellTaskOrganizer, @ShellMainThread private val handler: Handler, private val surfaceControlBuilderSupplier: () -> SurfaceControl.Builder = { Loading Loading @@ -105,7 +105,9 @@ abstract class WindowDecoration2<T>( } } /** The surface control of the task that owns this decoration. */ val taskSurface = cloneSurfaceControl(taskSurface, surfaceControlSupplier) var taskSurface = cloneSurfaceControl(taskSurface, surfaceControlSupplier) private set protected var decorationContainerSurface: SurfaceControl? = null /** Sets the [TaskDragResizer] which allows task to be drag-resized. */ var taskDragResizer: TaskDragResizer? = null Loading Loading @@ -150,6 +152,7 @@ abstract class WindowDecoration2<T>( startT: SurfaceControl.Transaction, finishT: SurfaceControl.Transaction, wct: WindowContainerTransaction, newTaskSurface: SurfaceControl?, ): RelayoutResult<T>? = traceSection( traceTag = Trace.TRACE_TAG_WINDOW_MANAGER, Loading @@ -159,6 +162,20 @@ abstract class WindowDecoration2<T>( hasGlobalFocus = params.hasGlobalFocus exclusionRegion.set(params.displayExclusionRegion) if ( decorationContainerSurface != null && newTaskSurface != null && !newTaskSurface.isSameSurface(taskSurface) ) { val containerSurface = checkNotNull(decorationContainerSurface) { "expected non-null decoration container surface" } taskSurface.release() taskSurface = cloneSurfaceControl(newTaskSurface, surfaceControlSupplier) startT.reparent(containerSurface, taskSurface) } if (!taskInfo.isVisible) { releaseViews(wct) if (params.setTaskVisibilityPositionAndCrop) { Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecorationWrapper.kt +2 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ private constructor( hasGlobalFocus: Boolean, displayExclusionRegion: Region, inSyncWithTransition: Boolean, taskSurface: SurfaceControl?, ) = when { defaultWindowDecor != null -> { Loading @@ -228,6 +229,7 @@ private constructor( hasGlobalFocus, displayExclusionRegion, inSyncWithTransition, taskSurface, ) } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/CaptionWindowDecorViewModel.java +3 −3 Original line number Diff line number Diff line Loading @@ -257,7 +257,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel, FocusT decoration.relayout(taskInfo, startT, finishT, false /* applyStartTransactionOnDraw */, false /* setTaskCropAndPosition */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mExclusionRegion, /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, taskSurface); } } Loading @@ -272,7 +272,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel, FocusT decoration.relayout(taskInfo, startT, finishT, false /* applyStartTransactionOnDraw */, false /* setTaskCropAndPosition */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mExclusionRegion, /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, /* taskSurface */ null); } @Override Loading Loading @@ -372,7 +372,7 @@ public class CaptionWindowDecorViewModel implements WindowDecorViewModel, FocusT windowDecoration.relayout(taskInfo, startT, finishT, false /* applyStartTransactionOnDraw */, false /* setTaskCropAndPosition */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mExclusionRegion, /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, taskSurface); } private class CaptionTouchEventListener implements Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DefaultWindowDecoration.kt +3 −1 Original line number Diff line number Diff line Loading @@ -307,6 +307,7 @@ constructor( hasGlobalFocus, displayExclusionRegion, inSyncWithTransition = false, taskSurface, ) if (!applyTransactionOnDraw) { t.apply() Loading @@ -323,6 +324,7 @@ constructor( hasGlobalFocus: Boolean, displayExclusionRegion: Region, inSyncWithTransition: Boolean, taskSurface: SurfaceControl?, ) = traceSection("DefaultWindowDecoration#relayout") { if (DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_APP_TO_WEB.isTrue) { Loading Loading @@ -356,7 +358,7 @@ constructor( ) val wct = windowContainerTransactionSupplier.invoke() relayout(relayoutParams, startT, finishT, wct) relayout(relayoutParams, startT, finishT, wct, taskSurface) // After this line, taskInfo is up-to-date and should be used instead of taskInfo if (!wct.isEmpty) { Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +3 −3 Original line number Diff line number Diff line Loading @@ -657,7 +657,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, false /* shouldSetTaskPositionAndCrop */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mGestureExclusionTracker.getExclusionRegion(taskInfo.displayId), /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, taskSurface); } } Loading Loading @@ -732,7 +732,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, false /* shouldSetTaskPositionAndCrop */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mGestureExclusionTracker.getExclusionRegion(taskInfo.displayId), /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, /* taskSurface */ null); } @Override Loading Loading @@ -2161,7 +2161,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, false /* applyStartTransactionOnDraw */, false /* shouldSetTaskPositionAndCrop */, mFocusTransitionObserver.hasGlobalFocus(taskInfo), mGestureExclusionTracker.getExclusionRegion(taskInfo.displayId), /* inSyncWithTransition= */ true); /* inSyncWithTransition= */ true, taskSurface); if (!DesktopModeFlags.ENABLE_HANDLE_INPUT_FIX.isTrue()) { incrementEventReceiverTasks(taskInfo.displayId); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecoration2.kt +19 −2 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ abstract class WindowDecoration2<T>( private val context: Context, private val displayController: DisplayController, taskSurface: SurfaceControl, surfaceControlSupplier: () -> SurfaceControl, private val surfaceControlSupplier: () -> SurfaceControl, private val taskOrganizer: ShellTaskOrganizer, @ShellMainThread private val handler: Handler, private val surfaceControlBuilderSupplier: () -> SurfaceControl.Builder = { Loading Loading @@ -105,7 +105,9 @@ abstract class WindowDecoration2<T>( } } /** The surface control of the task that owns this decoration. */ val taskSurface = cloneSurfaceControl(taskSurface, surfaceControlSupplier) var taskSurface = cloneSurfaceControl(taskSurface, surfaceControlSupplier) private set protected var decorationContainerSurface: SurfaceControl? = null /** Sets the [TaskDragResizer] which allows task to be drag-resized. */ var taskDragResizer: TaskDragResizer? = null Loading Loading @@ -150,6 +152,7 @@ abstract class WindowDecoration2<T>( startT: SurfaceControl.Transaction, finishT: SurfaceControl.Transaction, wct: WindowContainerTransaction, newTaskSurface: SurfaceControl?, ): RelayoutResult<T>? = traceSection( traceTag = Trace.TRACE_TAG_WINDOW_MANAGER, Loading @@ -159,6 +162,20 @@ abstract class WindowDecoration2<T>( hasGlobalFocus = params.hasGlobalFocus exclusionRegion.set(params.displayExclusionRegion) if ( decorationContainerSurface != null && newTaskSurface != null && !newTaskSurface.isSameSurface(taskSurface) ) { val containerSurface = checkNotNull(decorationContainerSurface) { "expected non-null decoration container surface" } taskSurface.release() taskSurface = cloneSurfaceControl(newTaskSurface, surfaceControlSupplier) startT.reparent(containerSurface, taskSurface) } if (!taskInfo.isVisible) { releaseViews(wct) if (params.setTaskVisibilityPositionAndCrop) { Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/WindowDecorationWrapper.kt +2 −0 Original line number Diff line number Diff line Loading @@ -215,6 +215,7 @@ private constructor( hasGlobalFocus: Boolean, displayExclusionRegion: Region, inSyncWithTransition: Boolean, taskSurface: SurfaceControl?, ) = when { defaultWindowDecor != null -> { Loading @@ -228,6 +229,7 @@ private constructor( hasGlobalFocus, displayExclusionRegion, inSyncWithTransition, taskSurface, ) } Loading