Add errata supporting changes to position: static (#1434)
Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1434 X-link: https://github.com/facebook/react-native/pull/41130 I will use this errata to gate my changes that actually make position: static behave like the web. We have future plans to make position: relative the default again but users could still have declared certain nodes as position: static, so I think this is needed regardless. Reviewed By: NickGerleman Differential Revision: D50506915 fbshipit-source-id: b0d9e6883167de6ff002352c9288053324464cb9
This commit is contained in:
committed by
Facebook GitHub Bot
parent
6cc9e58246
commit
52ae53a7c8
2
enums.py
2
enums.py
@@ -70,6 +70,8 @@ ENUMS = {
|
|||||||
("StretchFlexBasis", 1 << 0),
|
("StretchFlexBasis", 1 << 0),
|
||||||
# Solely uses the flex-direction to determine starting and ending edges
|
# Solely uses the flex-direction to determine starting and ending edges
|
||||||
("StartingEndingEdgeFromFlexDirection", 1 << 1),
|
("StartingEndingEdgeFromFlexDirection", 1 << 1),
|
||||||
|
# Position: static behaves like position: relative within Yoga
|
||||||
|
("PositionStaticBehavesLikeRelative", 1 << 2),
|
||||||
# Enable all incorrect behavior (preserve compatibility)
|
# Enable all incorrect behavior (preserve compatibility)
|
||||||
("All", 0x7FFFFFFF),
|
("All", 0x7FFFFFFF),
|
||||||
# Enable all errata except for "StretchFlexBasis" (Defaults behavior
|
# Enable all errata except for "StretchFlexBasis" (Defaults behavior
|
||||||
|
@@ -13,6 +13,7 @@ public enum YogaErrata {
|
|||||||
NONE(0),
|
NONE(0),
|
||||||
STRETCH_FLEX_BASIS(1),
|
STRETCH_FLEX_BASIS(1),
|
||||||
STARTING_ENDING_EDGE_FROM_FLEX_DIRECTION(2),
|
STARTING_ENDING_EDGE_FROM_FLEX_DIRECTION(2),
|
||||||
|
POSITION_STATIC_BEHAVES_LIKE_RELATIVE(4),
|
||||||
ALL(2147483647),
|
ALL(2147483647),
|
||||||
CLASSIC(2147483646);
|
CLASSIC(2147483646);
|
||||||
|
|
||||||
@@ -31,6 +32,7 @@ public enum YogaErrata {
|
|||||||
case 0: return NONE;
|
case 0: return NONE;
|
||||||
case 1: return STRETCH_FLEX_BASIS;
|
case 1: return STRETCH_FLEX_BASIS;
|
||||||
case 2: return STARTING_ENDING_EDGE_FROM_FLEX_DIRECTION;
|
case 2: return STARTING_ENDING_EDGE_FROM_FLEX_DIRECTION;
|
||||||
|
case 4: return POSITION_STATIC_BEHAVES_LIKE_RELATIVE;
|
||||||
case 2147483647: return ALL;
|
case 2147483647: return ALL;
|
||||||
case 2147483646: return CLASSIC;
|
case 2147483646: return CLASSIC;
|
||||||
default: throw new IllegalArgumentException("Unknown enum value: " + value);
|
default: throw new IllegalArgumentException("Unknown enum value: " + value);
|
||||||
|
@@ -51,6 +51,7 @@ export enum Errata {
|
|||||||
None = 0,
|
None = 0,
|
||||||
StretchFlexBasis = 1,
|
StretchFlexBasis = 1,
|
||||||
StartingEndingEdgeFromFlexDirection = 2,
|
StartingEndingEdgeFromFlexDirection = 2,
|
||||||
|
PositionStaticBehavesLikeRelative = 4,
|
||||||
All = 2147483647,
|
All = 2147483647,
|
||||||
Classic = 2147483646,
|
Classic = 2147483646,
|
||||||
}
|
}
|
||||||
@@ -162,6 +163,7 @@ const constants = {
|
|||||||
ERRATA_NONE: Errata.None,
|
ERRATA_NONE: Errata.None,
|
||||||
ERRATA_STRETCH_FLEX_BASIS: Errata.StretchFlexBasis,
|
ERRATA_STRETCH_FLEX_BASIS: Errata.StretchFlexBasis,
|
||||||
ERRATA_STARTING_ENDING_EDGE_FROM_FLEX_DIRECTION: Errata.StartingEndingEdgeFromFlexDirection,
|
ERRATA_STARTING_ENDING_EDGE_FROM_FLEX_DIRECTION: Errata.StartingEndingEdgeFromFlexDirection,
|
||||||
|
ERRATA_POSITION_STATIC_BEHAVES_LIKE_RELATIVE: Errata.PositionStaticBehavesLikeRelative,
|
||||||
ERRATA_ALL: Errata.All,
|
ERRATA_ALL: Errata.All,
|
||||||
ERRATA_CLASSIC: Errata.Classic,
|
ERRATA_CLASSIC: Errata.Classic,
|
||||||
EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: ExperimentalFeature.WebFlexBasis,
|
EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS: ExperimentalFeature.WebFlexBasis,
|
||||||
|
@@ -97,6 +97,8 @@ const char* YGErrataToString(const YGErrata value) {
|
|||||||
return "stretch-flex-basis";
|
return "stretch-flex-basis";
|
||||||
case YGErrataStartingEndingEdgeFromFlexDirection:
|
case YGErrataStartingEndingEdgeFromFlexDirection:
|
||||||
return "starting-ending-edge-from-flex-direction";
|
return "starting-ending-edge-from-flex-direction";
|
||||||
|
case YGErrataPositionStaticBehavesLikeRelative:
|
||||||
|
return "position-static-behaves-like-relative";
|
||||||
case YGErrataAll:
|
case YGErrataAll:
|
||||||
return "all";
|
return "all";
|
||||||
case YGErrataClassic:
|
case YGErrataClassic:
|
||||||
|
@@ -57,6 +57,7 @@ YG_ENUM_DECL(
|
|||||||
YGErrataNone = 0,
|
YGErrataNone = 0,
|
||||||
YGErrataStretchFlexBasis = 1,
|
YGErrataStretchFlexBasis = 1,
|
||||||
YGErrataStartingEndingEdgeFromFlexDirection = 2,
|
YGErrataStartingEndingEdgeFromFlexDirection = 2,
|
||||||
|
YGErrataPositionStaticBehavesLikeRelative = 4,
|
||||||
YGErrataAll = 2147483647,
|
YGErrataAll = 2147483647,
|
||||||
YGErrataClassic = 2147483646)
|
YGErrataClassic = 2147483646)
|
||||||
YG_DEFINE_ENUM_FLAG_OPERATORS(YGErrata)
|
YG_DEFINE_ENUM_FLAG_OPERATORS(YGErrata)
|
||||||
|
@@ -19,6 +19,7 @@ enum class Errata : uint32_t {
|
|||||||
None = YGErrataNone,
|
None = YGErrataNone,
|
||||||
StretchFlexBasis = YGErrataStretchFlexBasis,
|
StretchFlexBasis = YGErrataStretchFlexBasis,
|
||||||
StartingEndingEdgeFromFlexDirection = YGErrataStartingEndingEdgeFromFlexDirection,
|
StartingEndingEdgeFromFlexDirection = YGErrataStartingEndingEdgeFromFlexDirection,
|
||||||
|
PositionStaticBehavesLikeRelative = YGErrataPositionStaticBehavesLikeRelative,
|
||||||
All = YGErrataAll,
|
All = YGErrataAll,
|
||||||
Classic = YGErrataClassic,
|
Classic = YGErrataClassic,
|
||||||
};
|
};
|
||||||
@@ -27,7 +28,7 @@ YG_DEFINE_ENUM_FLAG_OPERATORS(Errata)
|
|||||||
|
|
||||||
template <>
|
template <>
|
||||||
constexpr inline int32_t ordinalCount<Errata>() {
|
constexpr inline int32_t ordinalCount<Errata>() {
|
||||||
return 5;
|
return 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
|
Reference in New Issue
Block a user