From d676558a30e56e4a96076bf72743eb07e2be61e5 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Fri, 5 Jun 2020 02:34:07 -0700 Subject: [PATCH] Add support for elevation prop in Fabric Summary: This diff adds support elevation prop in Fabric core, additionally it adds this prop as non collapsable on the view flattening algorithm changelog: [Internal] internal change in fabric to support elevation prop Reviewed By: JoshuaGross Differential Revision: D21896465 fbshipit-source-id: e0854acc0b2ac30eaf3f82d615aab1cf378cc530 --- ReactCommon/fabric/components/view/ViewProps.cpp | 4 +++- ReactCommon/fabric/components/view/ViewProps.h | 2 ++ ReactCommon/fabric/components/view/ViewShadowNode.cpp | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ReactCommon/fabric/components/view/ViewProps.cpp b/ReactCommon/fabric/components/view/ViewProps.cpp index be9e8db543a..f391c709493 100644 --- a/ReactCommon/fabric/components/view/ViewProps.cpp +++ b/ReactCommon/fabric/components/view/ViewProps.cpp @@ -92,7 +92,9 @@ ViewProps::ViewProps(ViewProps const &sourceProps, RawProps const &rawProps) rawProps, "collapsable", sourceProps.collapsable, - true)){}; + true)), + elevation( + convertRawProp(rawProps, "elevation", sourceProps.elevation, {})){}; #pragma mark - Convenience Methods diff --git a/ReactCommon/fabric/components/view/ViewProps.h b/ReactCommon/fabric/components/view/ViewProps.h index a14a3610ae0..f1db61f0fff 100644 --- a/ReactCommon/fabric/components/view/ViewProps.h +++ b/ReactCommon/fabric/components/view/ViewProps.h @@ -59,6 +59,8 @@ class ViewProps : public YogaStylableProps, public AccessibilityProps { bool collapsable{true}; + int elevation{}; + #pragma mark - Convenience Methods BorderMetrics resolveBorderMetrics(LayoutMetrics const &layoutMetrics) const; diff --git a/ReactCommon/fabric/components/view/ViewShadowNode.cpp b/ReactCommon/fabric/components/view/ViewShadowNode.cpp index b503bb2986b..024318662f3 100644 --- a/ReactCommon/fabric/components/view/ViewShadowNode.cpp +++ b/ReactCommon/fabric/components/view/ViewShadowNode.cpp @@ -43,6 +43,7 @@ void ViewShadowNode::initialize() noexcept { viewProps.pointerEvents == PointerEventsMode::None || !viewProps.nativeId.empty() || viewProps.accessible || viewProps.opacity != 1.0 || viewProps.transform != Transform{} || + viewProps.elevation != 0 || (viewProps.zIndex != 0 && viewProps.yogaStyle.positionType() == YGPositionTypeAbsolute) || viewProps.getClipsContentToBounds() ||