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.intrinsicRatio != 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
) {
return true;
}
}
return false;
}