diff --git a/ReactAndroid/src/main/java/com/facebook/yoga/YogaEventListener.java b/ReactAndroid/src/main/java/com/facebook/yoga/YogaEventListener.java index 97791224577..cc7e9ebd0da 100644 --- a/ReactAndroid/src/main/java/com/facebook/yoga/YogaEventListener.java +++ b/ReactAndroid/src/main/java/com/facebook/yoga/YogaEventListener.java @@ -12,4 +12,6 @@ public interface YogaEventListener { void onNodeMeasure(YogaNode node); + void onNodeLayout(YogaNode node, boolean performLayout); + } diff --git a/ReactCommon/yoga/yoga/Yoga.cpp b/ReactCommon/yoga/yoga/Yoga.cpp index c46104be1d3..6c739a069e0 100644 --- a/ReactCommon/yoga/yoga/Yoga.cpp +++ b/ReactCommon/yoga/yoga/Yoga.cpp @@ -3670,7 +3670,7 @@ bool YGLayoutNodeInternal( YGMarkerLayoutData& layoutMarkerData, void* const layoutContext) { #ifdef YG_ENABLE_EVENTS - Event::publish(node); + Event::publish(node, {performLayout, layoutContext}); #endif YGLayout* layout = &node->getLayout(); diff --git a/ReactCommon/yoga/yoga/event/event.h b/ReactCommon/yoga/yoga/event/event.h index bff8dbfd895..9dcd73b6a0f 100644 --- a/ReactCommon/yoga/yoga/event/event.h +++ b/ReactCommon/yoga/yoga/event/event.h @@ -82,5 +82,11 @@ struct Event::TypedData { void* layoutContext; }; +template <> +struct Event::TypedData { + bool performLayout; + void* layoutContext; +}; + } // namespace yoga } // namespace facebook