From 39475f145fd47a62c47fb8358a84997c61e2a19a Mon Sep 17 00:00:00 2001 From: Jorge Cabiedes Acosta Date: Mon, 25 Nov 2024 09:41:06 -0800 Subject: [PATCH 1/2] [skip ci] Add fabric check to drawChild function (#47293) Summary: We missed fabric check for the mix-blend-mode conditional on `drawChildren` adding it now Changelog: [Internal] Reviewed By: NickGerleman Differential Revision: D65167244 --- .../main/java/com/facebook/react/views/view/ReactViewGroup.java | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java index f38c46037080..95819ae1876f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java @@ -851,6 +851,7 @@ protected boolean drawChild(Canvas canvas, View child, long drawingTime) { BlendMode mixBlendMode = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q + && ViewUtil.getUIManagerType(this) == UIManagerType.FABRIC && BlendModeHelper.needsIsolatedLayer(this)) { mixBlendMode = (BlendMode) child.getTag(R.id.mix_blend_mode); if (mixBlendMode != null) { From 622ec099cfec11cf925c0da9e878bbbee0414ec1 Mon Sep 17 00:00:00 2001 From: Jorge Cabiedes Acosta Date: Mon, 25 Nov 2024 09:41:06 -0800 Subject: [PATCH 2/2] Add mixBlendMode to iterator style parser (#47292) Summary: If we don't add the prop to the iterator style parser then since fabric is not parsing the prop we are not properly creating the stacking context for when a prop has a mix-blend-mode set Changelog: [Internal] Reviewed By: javache Differential Revision: D65166886 --- .../react/renderer/components/view/BaseViewProps.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.cpp index 4ecee2a7a712..22d543fcd82b 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/view/BaseViewProps.cpp @@ -403,8 +403,9 @@ void BaseViewProps::setProp( RAW_SET_PROP_SWITCH_CASE_BASIC(outlineOffset); RAW_SET_PROP_SWITCH_CASE_BASIC(outlineStyle); RAW_SET_PROP_SWITCH_CASE_BASIC(outlineWidth); - RAW_SET_PROP_SWITCH_CASE(filter, "filter"); - RAW_SET_PROP_SWITCH_CASE(boxShadow, "boxShadow"); + RAW_SET_PROP_SWITCH_CASE_BASIC(filter); + RAW_SET_PROP_SWITCH_CASE_BASIC(boxShadow); + RAW_SET_PROP_SWITCH_CASE_BASIC(mixBlendMode); // events field VIEW_EVENT_CASE(PointerEnter); VIEW_EVENT_CASE(PointerEnterCapture);