From 709a3a0ceb1aa28addcad28708fdab785fcb6e09 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Sun, 2 Aug 2020 08:12:32 -0700 Subject: [PATCH] Backout "[RN] Fabric: Enable zIndex only for non-`static` positioned views" Summary: Changelog: [internal] Backout D22098586 (https://github.com/facebook/react-native/commit/476ab7481e23070fc4db3f584e45a95eb2f9f7e1) because of issues like D22843134 (https://github.com/facebook/react-native/commit/799654b1058f6685c052f4e300c6e3ab81005549). [428](https://fburl.com/codesearch/0dyyakf5) places with zIndex and most of them do not have position defined. This could cause views to be overlapped. Reviewed By: JoshuaGross Differential Revision: D22890669 fbshipit-source-id: 200d1cbe2a4c27e2a0445b315868f37418ab1d9b --- .../renderer/components/view/ConcreteViewShadowNode.h | 9 ++------- .../react/renderer/components/view/ViewShadowNode.cpp | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h b/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h index 0fe2def64c..e7a65c05b3 100644 --- a/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h +++ b/ReactCommon/react/renderer/components/view/ConcreteViewShadowNode.h @@ -105,18 +105,13 @@ class ConcreteViewShadowNode : public ConcreteShadowNode< void initialize() noexcept { auto &props = BaseShadowNode::getConcreteProps(); + BaseShadowNode::orderIndex_ = props.zIndex.value_or(0); + if (props.yogaStyle.display() == YGDisplayNone) { BaseShadowNode::traits_.set(ShadowNodeTraits::Trait::Hidden); } else { BaseShadowNode::traits_.unset(ShadowNodeTraits::Trait::Hidden); } - - // `zIndex` is only defined for non-`static` positioned views. - if (props.yogaStyle.positionType() != YGPositionTypeStatic) { - BaseShadowNode::orderIndex_ = props.zIndex.value_or(0); - } else { - BaseShadowNode::orderIndex_ = 0; - } } }; diff --git a/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp b/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp index 60aa53f5db..8332f9377c 100644 --- a/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +++ b/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp @@ -45,7 +45,7 @@ void ViewShadowNode::initialize() noexcept { viewProps.opacity != 1.0 || viewProps.transform != Transform{} || viewProps.elevation != 0 || (viewProps.zIndex.has_value() && - viewProps.yogaStyle.positionType() != YGPositionTypeStatic) || + viewProps.yogaStyle.positionType() != YGPositionTypeAbsolute) || viewProps.yogaStyle.display() == YGDisplayNone || viewProps.getClipsContentToBounds() || isColorMeaningful(viewProps.shadowColor) ||