clipX property
bool
get
clipX
Implementation
bool get clipX {
RenderBoxModel renderBoxModel = this as RenderBoxModel;
// Recycler layout not need repaintBoundary and scroll/pointer listeners,
// ignoring overflowX or overflowY sets, which handle it self.
if (renderBoxModel is RenderSliverListLayout) {
return false;
}
List<Radius>? borderRadius = renderBoxModel.renderStyle.borderRadius;
// The content of replaced elements is always trimmed to the content edge curve.
// https://www.w3.org/TR/css-backgrounds-3/#corner-clipping
if (borderRadius != null && this is RenderReplaced && renderStyle.aspectRatio != null) {
return true;
}
// Overflow value other than 'visible' always need to clip content.
// https://www.w3.org/TR/css-overflow-3/#overflow-properties
CSSOverflowType effectiveOverflowX = renderStyle.effectiveOverflowX;
if (effectiveOverflowX != CSSOverflowType.visible) {
Size scrollableSize = renderBoxModel.scrollableSize;
Size scrollableViewportSize = renderBoxModel.scrollableViewportSize;
// Border-radius always to clip inner content when overflow is not visible.
if (scrollableSize.width > scrollableViewportSize.width ||
borderRadius != null ||
(renderBoxModel.overflowRect != null && renderBoxModel.overflowRect!.left < 0)) {
return true;
}
}
return false;
}