diff --git a/YogaKit/Source/YGLayout.m b/YogaKit/Source/YGLayout.m index 1627a74f..638a81da 100644 --- a/YogaKit/Source/YGLayout.m +++ b/YogaKit/Source/YGLayout.m @@ -175,6 +175,7 @@ static YGConfigRef globalConfig; globalConfig = YGConfigNew(); YGConfigSetExperimentalFeatureEnabled( globalConfig, YGExperimentalFeatureWebFlexBasis, true); + YGConfigSetErrata(globalConfig, YGErrataClassic); YGConfigSetPointScaleFactor(globalConfig, [UIScreen mainScreen].scale); } diff --git a/csharp/Facebook.Yoga/Native.cs b/csharp/Facebook.Yoga/Native.cs index 1bdc24f0..f22e5888 100644 --- a/csharp/Facebook.Yoga/Native.cs +++ b/csharp/Facebook.Yoga/Native.cs @@ -73,6 +73,12 @@ namespace Facebook.Yoga [DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)] public static extern bool YGConfigGetUseLegacyStretchBehaviour(YGConfigHandle config); + [DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)] + public static extern void YGConfigSetErrata(YGConfigHandle config, YogaErrata errata); + + [DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)] + public static extern YogaErrata YGConfigGetErrata(YGConfigHandle config); + [DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)] public static extern void YGConfigSetPointScaleFactor( YGConfigHandle config, diff --git a/csharp/Facebook.Yoga/YogaConfig.cs b/csharp/Facebook.Yoga/YogaConfig.cs index 8424401f..c4162d31 100644 --- a/csharp/Facebook.Yoga/YogaConfig.cs +++ b/csharp/Facebook.Yoga/YogaConfig.cs @@ -117,8 +117,12 @@ namespace Facebook.Yoga } } - public bool UseLegacyStretchBehaviour - { + [ObsoleteAttribute("\"UseLegacyStretchBehaviour\" will be removed in the next release. " + + "Usage should be replaced with \"Errata\" set to \"YogaErrata.All\" to opt out of all " + + "future breaking conformance fixes, or \"YogaErrata.StretchFlexBasis\" toopt out of " + + "the specific conformance fix previously disabled by \"UseLegacyStretchBehaviour\".", + true /*error*/)] + public bool UseLegacyStretchBehaviour { get { return Native.YGConfigGetUseLegacyStretchBehaviour(_ygConfig); @@ -130,6 +134,19 @@ namespace Facebook.Yoga } } + public YogaErrata Errata + { + get + { + return Native.YGConfigGetErrata(_ygConfig); + } + + set + { + Native.YGConfigSetErrata(_ygConfig, value); + } + } + public float PointScaleFactor { set diff --git a/java/com/facebook/yoga/YogaConfig.java b/java/com/facebook/yoga/YogaConfig.java index 87928f02..93131359 100644 --- a/java/com/facebook/yoga/YogaConfig.java +++ b/java/com/facebook/yoga/YogaConfig.java @@ -22,7 +22,13 @@ public abstract class YogaConfig { * Yoga previously had an error where containers would take the maximum space possible instead of the minimum * like they are supposed to. In practice this resulted in implicit behaviour similar to align-self: stretch; * Because this was such a long-standing bug we must allow legacy users to switch back to this behaviour. + * + * @deprecated "setUseLegacyStretchBehaviour" will be removed in the next release. Usage should be replaced with + * "setErrata(YogaErrata.ALL)" to opt out of all future breaking conformance fixes, or + * "setErrata(YogaErrata.STRETCH_FLEX_BASIS)" to opt out of the specific conformance fix previously disabled by + * "UseLegacyStretchBehaviour". */ + @Deprecated public abstract void setUseLegacyStretchBehaviour(boolean useLegacyStretchBehaviour); public abstract void setErrata(YogaErrata errata);