From 367a573ccc7e049e8980470ac14933496eda98ec Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Tue, 31 Mar 2020 09:47:32 -0700 Subject: [PATCH] Assign orderIndex_ in ConcreteViewShadowNode constructor instead of ViewShadowNode's constructor Summary: Changelog: [Internal] `orderIndex_` was only being assigned for `ViewShadowNode`, not for other `ShadowNodes` that are later represented on the screen. Reviewed By: shergin Differential Revision: D20746477 fbshipit-source-id: c04c2cfea14b9141d22bc3d9e9bb4c0c59925754 --- .../components/view/ConcreteViewShadowNode.h | 21 +++++++++++++++++++ .../fabric/components/view/ViewShadowNode.cpp | 2 -- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ReactCommon/fabric/components/view/ConcreteViewShadowNode.h b/ReactCommon/fabric/components/view/ConcreteViewShadowNode.h index 8ae629b3dcd..732b36e05a1 100644 --- a/ReactCommon/fabric/components/view/ConcreteViewShadowNode.h +++ b/ReactCommon/fabric/components/view/ConcreteViewShadowNode.h @@ -52,6 +52,22 @@ class ConcreteViewShadowNode : public ConcreteShadowNode< ViewPropsT, ViewEventEmitterT, Ts...>; + + ConcreteViewShadowNode( + ShadowNodeFragment const &fragment, + ShadowNodeFamily::Shared const &family, + ShadowNodeTraits traits) + : BaseShadowNode(fragment, family, traits) { + initialize(); + } + + ConcreteViewShadowNode( + ShadowNode const &sourceShadowNode, + ShadowNodeFragment const &fragment) + : BaseShadowNode(sourceShadowNode, fragment) { + initialize(); + } + using ConcreteViewProps = ViewPropsT; using BaseShadowNode::BaseShadowNode; @@ -84,6 +100,11 @@ class ConcreteViewShadowNode : public ConcreteShadowNode< return list; } #endif + + private: + void initialize() noexcept { + BaseShadowNode::orderIndex_ = BaseShadowNode::getConcreteProps().zIndex; + } }; } // namespace react diff --git a/ReactCommon/fabric/components/view/ViewShadowNode.cpp b/ReactCommon/fabric/components/view/ViewShadowNode.cpp index 0796ac2af5c..ccbe10d452e 100644 --- a/ReactCommon/fabric/components/view/ViewShadowNode.cpp +++ b/ReactCommon/fabric/components/view/ViewShadowNode.cpp @@ -39,8 +39,6 @@ static bool isColorMeaningful(SharedColor const &color) noexcept { void ViewShadowNode::initialize() noexcept { auto &viewProps = static_cast(*props_); - orderIndex_ = viewProps.zIndex; - bool formsStackingContext = !viewProps.collapsable || viewProps.pointerEvents == PointerEventsMode::None || !viewProps.nativeId.empty() || viewProps.accessible ||