From 4601cd5d1ec7ca6dc0a27df0b6c25877354a3cb8 Mon Sep 17 00:00:00 2001 From: Levi McCallum Date: Thu, 3 Mar 2016 08:40:08 -0800 Subject: [PATCH] Preserve usesImplicitHierarchyManagement when doing animations Currently the flag was being reset to NO in all cases. It should ignore turning off the hierarchy management when the user has already enabled it. --- AsyncDisplayKit/ASDisplayNode.mm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/AsyncDisplayKit/ASDisplayNode.mm b/AsyncDisplayKit/ASDisplayNode.mm index b33b5a1cec..796a670635 100644 --- a/AsyncDisplayKit/ASDisplayNode.mm +++ b/AsyncDisplayKit/ASDisplayNode.mm @@ -63,7 +63,7 @@ NSString * const ASRenderingEngineDidDisplayNodesScheduledBeforeTimestamp = @"AS @synthesize isFinalLayoutable = _isFinalLayoutable; @synthesize threadSafeBounds = _threadSafeBounds; -static BOOL usesImplicitHierarchyManagement = FALSE; +static BOOL usesImplicitHierarchyManagement = NO; + (BOOL)usesImplicitHierarchyManagement { @@ -666,10 +666,13 @@ static ASDisplayNodeMethodOverrides GetASDisplayNodeMethodOverrides(Class c) - (ASLayout *)transitionLayoutWithSizeRange:(ASSizeRange)constrainedSize animated:(BOOL)animated { + BOOL disableImplicitHierarchyManagement = self.usesImplicitHierarchyManagement == NO; self.usesImplicitHierarchyManagement = YES; // Temporary flag for 1.9.x return [self measureWithSizeRange:constrainedSize completion:^{ - self.usesImplicitHierarchyManagement = NO; // Temporary flag for 1.9.x + if (disableImplicitHierarchyManagement) { + self.usesImplicitHierarchyManagement = NO; // Temporary flag for 1.9.x + } ASPerformBlockOnMainThread(^{ _transitionContext = [[_ASTransitionContext alloc] initWithAnimation:animated delegate:self];