Merge "Fix the shadow problem caused by layer parent switching" am: 8ab01b202f am: 6d3c8a29d4 am: 8fce12b797 am: 1041b72bd8 am: cc4795268a

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2075863

Change-Id: I58a4d9905f4dd8bf441dca0a1773e9906f6b5efd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index b1f0ba1..68e0a96 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -1613,8 +1613,10 @@
 void Layer::setChildrenDrawingParent(const sp<Layer>& newParent) {
     for (const sp<Layer>& child : mDrawingChildren) {
         child->mDrawingParent = newParent;
+        const float parentShadowRadius =
+                newParent->canDrawShadows() ? 0.f : newParent->mEffectiveShadowRadius;
         child->computeBounds(newParent->mBounds, newParent->mEffectiveTransform,
-                             newParent->mEffectiveShadowRadius);
+                             parentShadowRadius);
     }
 }