diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java index 27ff5bc8e977e..88aad13841b02 100644 --- a/services/core/java/com/android/server/wm/DockedStackDividerController.java +++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java @@ -172,12 +172,18 @@ public class DockedStackDividerController implements DimLayerUser { void setResizeDimLayer(boolean visible, int targetStackId, float alpha) { SurfaceControl.openTransaction(); TaskStack stack = mDisplayContent.mService.mStackIdToStack.get(targetStackId); - if (visible && stack != null) { + boolean visibleAndValid = visible && stack != null; + if (visibleAndValid) { stack.getDimBounds(mTmpRect); - mDimLayer.setBounds(mTmpRect); - mDimLayer.show(mDisplayContent.mService.mLayersController.getResizeDimLayer(), alpha, - 0 /* duration */); - } else { + if (mTmpRect.height() > 0) { + mDimLayer.setBounds(mTmpRect); + mDimLayer.show(mDisplayContent.mService.mLayersController.getResizeDimLayer(), + alpha, 0 /* duration */); + } else { + visibleAndValid = false; + } + } + if (!visibleAndValid) { mDimLayer.hide(); } SurfaceControl.closeTransaction();