visitChildrenAndTextRenderers method

bool visitChildrenAndTextRenderers(
  1. CancelableObjectVisitor visitor
)

Walks this RenderObject tree in a depth-first pre-order traversal, calling visitor for each child.

If visitor returns true, the walk continues, otherwise it is canceled.

Implementation

bool visitChildrenAndTextRenderers(CancelableObjectVisitor visitor) {
  var canceled = false;
  var firstTime = true;

  // Local render object visitor function.
  void renderObjectVisitor(RenderObject ro) {
    if (canceled) return; //----------------------------------->

    if (ro is VisitChildrenOfAnyTypeMixin) {
      if (firstTime) firstTime = false;
      canceled = !(ro as VisitChildrenOfAnyTypeMixin).visitChildrenOfAnyType(visitor);
    } else {
      if (firstTime) {
        firstTime = false;
      } else {
        canceled = !visitor(ro);
      }
      if (!canceled) ro.visitChildren(renderObjectVisitor);
    }
  }

  renderObjectVisitor(this);
  return !canceled;
}