void RenderSVGBlock::setStyle(RenderStyle* style) { RenderBlock::setStyle(style); //FIXME: Once overflow rules are supported by SVG we should //probably map the CSS overflow rules rather than just ignoring //them setHasOverflowClip(false); }
void RenderScrollbarPart::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle) { RenderBlock::styleDidChange(diff, oldStyle); setInline(false); clearPositionedState(); setFloating(false); setHasOverflowClip(false); if (oldStyle && m_scrollbar && m_part != NoPart && diff >= StyleDifferenceRepaint) m_scrollbar->theme()->invalidatePart(*m_scrollbar, m_part); }
void LayoutScrollbarPart::styleDidChange(StyleDifference diff, const ComputedStyle* oldStyle) { LayoutBlock::styleDidChange(diff, oldStyle); setInline(false); clearPositionedState(); setFloating(false); setHasOverflowClip(false); if (oldStyle && m_scrollbar && m_part != NoPart && (diff.needsPaintInvalidation() || diff.needsLayout())) m_scrollbar->theme()->invalidatePart(m_scrollbar, m_part); }
void LayoutSVGBlock::updateFromStyle() { LayoutBlock::updateFromStyle(); // LayoutSVGlock, used by Layout(SVGText|ForeignObject), is not allowed to call setHasOverflowClip(true). // LayoutBlock assumes a layer to be present when the overflow clip functionality is requested. Both // Layout(SVGText|ForeignObject) return 'NoPaintLayer' on 'layerTypeRequired'. Fine for LayoutSVGText. // // If we want to support overflow rules for <foreignObject> we can choose between two solutions: // a) make LayoutSVGForeignObject require layers and SVG layer aware // b) reactor overflow logic out of Layer (as suggested by dhyatt), which is a large task // // Until this is resolved, disable overflow support. Opera/FF don't support it as well at the moment (Feb 2010). // // Note: This does NOT affect overflow handling on outer/inner <svg> elements - this is handled // manually by LayoutSVGRoot - which owns the documents enclosing root layer and thus works fine. setHasOverflowClip(false); }