···753753754754 ChildBecameAlive?.Invoke(child);
755755756756+ // Invalidations on non-alive children are blocked, so they must be invalidated once when they become alive.
757757+ child.Invalidate(source: InvalidationSource.Parent);
758758+759759+ // Notify ourselves that a child has become alive.
756760 Invalidate(Invalidation.Presence, InvalidationSource.Child);
757761 }
758762···785789 removed = true;
786790 }
787791792792+ // Notify ourselves that a child has died.
788793 Invalidate(Invalidation.Presence, InvalidationSource.Child);
789794790795 return removed;
···961966 if (source == InvalidationSource.Child)
962967 return anyInvalidated;
963968964964- for (int i = 0; i < internalChildren.Count; ++i)
969969+ for (int i = 0; i < aliveInternalChildren.Count; ++i)
965970 {
966966- Drawable c = internalChildren[i];
971971+ Drawable c = aliveInternalChildren[i];
967972968973 Invalidation childInvalidation = invalidation;
969974 if ((invalidation & Invalidation.RequiredParentSizeToFit) > 0)