findScrollContainer method

RenderBoxModel? findScrollContainer()

Find scroll container

Implementation

RenderBoxModel? findScrollContainer() {
  RenderBoxModel? scrollContainer;
  RenderObject? parent = this.parent;

  while (parent != null) {
    if (parent is RenderLayoutBox &&
        (parent.renderStyle.effectiveOverflowX != CSSOverflowType.visible ||
            parent.renderStyle.effectiveOverflowY != CSSOverflowType.visible)) {
      // Scroll container should has definite constraints
      scrollContainer = parent;
      break;
    }
    if (parent is RenderWidget && (parent.renderStyle.target as WidgetElement).isScrollingElement) {
      scrollContainer = parent;
      break;
    }
    parent = parent.parent;
  }
  return scrollContainer;
}