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);
}
}