From 1541f9d528f26ea442b8e86e7533a6fcfeb8d4f1 Mon Sep 17 00:00:00 2001 From: Joe Vilches Date: Thu, 18 Jan 2024 21:22:05 -0800 Subject: [PATCH] Rename AbsolutePositioning errata (#1558) Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1558 X-link: https://github.com/facebook/react-native/pull/42318 AbsolutePositioning -> AbsolutePositioningCatchAll A bit more clear. This errata is for various issues with positioning absolute nodes. There really isn't a clear description as to what specifically this enables/disables, so I just opted to say "catch all" to indicate that this controls various bugs Reviewed By: NickGerleman Differential Revision: D52820117 fbshipit-source-id: 80b77832baf65e68e57ca523c418422dd346ef0f --- enums.py | 2 +- java/com/facebook/yoga/YogaErrata.java | 4 +-- javascript/src/generated/YGEnums.ts | 4 +-- yoga/YGEnums.cpp | 4 +-- yoga/YGEnums.h | 2 +- yoga/algorithm/AbsoluteLayout.cpp | 37 +++++++++++++------------- yoga/enums/Errata.h | 2 +- 7 files changed, 28 insertions(+), 27 deletions(-) diff --git a/enums.py b/enums.py index 6391ad8d..087d6443 100755 --- a/enums.py +++ b/enums.py @@ -68,7 +68,7 @@ ENUMS = { ("StretchFlexBasis", 1 << 0), # Positioning of absolute nodes will have various bugs related to # justification, alignment, and insets - ("AbsolutePositioning", 1 << 1), + ("AbsolutePositioningIncorrect", 1 << 1), # Absolute nodes will resolve percentages against the inner size of # their containing node, not the padding box ("AbsolutePercentAgainstInnerSize", 1 << 2), diff --git a/java/com/facebook/yoga/YogaErrata.java b/java/com/facebook/yoga/YogaErrata.java index e429d340..a0f26bf2 100644 --- a/java/com/facebook/yoga/YogaErrata.java +++ b/java/com/facebook/yoga/YogaErrata.java @@ -12,7 +12,7 @@ package com.facebook.yoga; public enum YogaErrata { NONE(0), STRETCH_FLEX_BASIS(1), - ABSOLUTE_POSITIONING(2), + ABSOLUTE_POSITIONING_INCORRECT(2), ABSOLUTE_PERCENT_AGAINST_INNER_SIZE(4), ALL(2147483647), CLASSIC(2147483646); @@ -31,7 +31,7 @@ public enum YogaErrata { switch (value) { case 0: return NONE; case 1: return STRETCH_FLEX_BASIS; - case 2: return ABSOLUTE_POSITIONING; + case 2: return ABSOLUTE_POSITIONING_INCORRECT; case 4: return ABSOLUTE_PERCENT_AGAINST_INNER_SIZE; case 2147483647: return ALL; case 2147483646: return CLASSIC; diff --git a/javascript/src/generated/YGEnums.ts b/javascript/src/generated/YGEnums.ts index 76a0f06e..6a8356c7 100644 --- a/javascript/src/generated/YGEnums.ts +++ b/javascript/src/generated/YGEnums.ts @@ -50,7 +50,7 @@ export enum Edge { export enum Errata { None = 0, StretchFlexBasis = 1, - AbsolutePositioning = 2, + AbsolutePositioningIncorrect = 2, AbsolutePercentAgainstInnerSize = 4, All = 2147483647, Classic = 2147483646, @@ -161,7 +161,7 @@ const constants = { EDGE_ALL: Edge.All, ERRATA_NONE: Errata.None, ERRATA_STRETCH_FLEX_BASIS: Errata.StretchFlexBasis, - ERRATA_ABSOLUTE_POSITIONING: Errata.AbsolutePositioning, + ERRATA_ABSOLUTE_POSITIONING_INCORRECT: Errata.AbsolutePositioningIncorrect, ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE: Errata.AbsolutePercentAgainstInnerSize, ERRATA_ALL: Errata.All, ERRATA_CLASSIC: Errata.Classic, diff --git a/yoga/YGEnums.cpp b/yoga/YGEnums.cpp index acac2114..d3365d3a 100644 --- a/yoga/YGEnums.cpp +++ b/yoga/YGEnums.cpp @@ -95,8 +95,8 @@ const char* YGErrataToString(const YGErrata value) { return "none"; case YGErrataStretchFlexBasis: return "stretch-flex-basis"; - case YGErrataAbsolutePositioning: - return "absolute-positioning"; + case YGErrataAbsolutePositioningIncorrect: + return "absolute-positioning-incorrect"; case YGErrataAbsolutePercentAgainstInnerSize: return "absolute-percent-against-inner-size"; case YGErrataAll: diff --git a/yoga/YGEnums.h b/yoga/YGEnums.h index 5b67aa49..18fbe0fe 100644 --- a/yoga/YGEnums.h +++ b/yoga/YGEnums.h @@ -56,7 +56,7 @@ YG_ENUM_DECL( YGErrata, YGErrataNone = 0, YGErrataStretchFlexBasis = 1, - YGErrataAbsolutePositioning = 2, + YGErrataAbsolutePositioningIncorrect = 2, YGErrataAbsolutePercentAgainstInnerSize = 4, YGErrataAll = 2147483647, YGErrataClassic = 2147483646) diff --git a/yoga/algorithm/AbsoluteLayout.cpp b/yoga/algorithm/AbsoluteLayout.cpp index 7a47c4d1..d5883355 100644 --- a/yoga/algorithm/AbsoluteLayout.cpp +++ b/yoga/algorithm/AbsoluteLayout.cpp @@ -261,24 +261,25 @@ static void positionAbsoluteChild( const bool isMainAxis, const float containingBlockWidth, const float containingBlockHeight) { - child->hasErrata(Errata::AbsolutePositioning) ? positionAbsoluteChildLegacy( - containingNode, - parent, - child, - direction, - axis, - isMainAxis, - containingBlockWidth, - containingBlockHeight) - : positionAbsoluteChildImpl( - containingNode, - parent, - child, - direction, - axis, - isMainAxis, - containingBlockWidth, - containingBlockHeight); + child->hasErrata(Errata::AbsolutePositioningIncorrect) + ? positionAbsoluteChildLegacy( + containingNode, + parent, + child, + direction, + axis, + isMainAxis, + containingBlockWidth, + containingBlockHeight) + : positionAbsoluteChildImpl( + containingNode, + parent, + child, + direction, + axis, + isMainAxis, + containingBlockWidth, + containingBlockHeight); } void layoutAbsoluteChild( diff --git a/yoga/enums/Errata.h b/yoga/enums/Errata.h index 43f1ba1a..1b43742e 100644 --- a/yoga/enums/Errata.h +++ b/yoga/enums/Errata.h @@ -18,7 +18,7 @@ namespace facebook::yoga { enum class Errata : uint32_t { None = YGErrataNone, StretchFlexBasis = YGErrataStretchFlexBasis, - AbsolutePositioning = YGErrataAbsolutePositioning, + AbsolutePositioningIncorrect = YGErrataAbsolutePositioningIncorrect, AbsolutePercentAgainstInnerSize = YGErrataAbsolutePercentAgainstInnerSize, All = YGErrataAll, Classic = YGErrataClassic,