diff options
Diffstat (limited to 'Source/WebCore/mathml/MathMLElement.cpp')
-rw-r--r-- | Source/WebCore/mathml/MathMLElement.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Source/WebCore/mathml/MathMLElement.cpp b/Source/WebCore/mathml/MathMLElement.cpp index 1f9a9c532..86584708a 100644 --- a/Source/WebCore/mathml/MathMLElement.cpp +++ b/Source/WebCore/mathml/MathMLElement.cpp @@ -33,6 +33,7 @@ #include "MathMLNames.h" #include "RenderObject.h" +#include "RenderTableCell.h" namespace WebCore { @@ -48,6 +49,34 @@ PassRefPtr<MathMLElement> MathMLElement::create(const QualifiedName& tagName, Do return adoptRef(new MathMLElement(tagName, document)); } +int MathMLElement::colSpan() const +{ + if (!hasTagName(mtdTag)) + return 1; + const AtomicString& colSpanValue = fastGetAttribute(columnspanAttr); + return std::max(1, colSpanValue.toInt()); +} + +int MathMLElement::rowSpan() const +{ + if (!hasTagName(mtdTag)) + return 1; + const AtomicString& rowSpanValue = fastGetAttribute(rowspanAttr); + return std::max(1, rowSpanValue.toInt()); +} + +void MathMLElement::parseAttribute(const Attribute& attribute) +{ + if (attribute.name() == rowspanAttr) { + if (renderer() && renderer()->isTableCell() && hasTagName(mtdTag)) + toRenderTableCell(renderer())->colSpanOrRowSpanChanged(); + } else if (attribute.name() == columnspanAttr) { + if (renderer() && renderer()->isTableCell() && hasTagName(mtdTag)) + toRenderTableCell(renderer())->colSpanOrRowSpanChanged(); + } else + StyledElement::parseAttribute(attribute); +} + bool MathMLElement::isPresentationAttribute(const QualifiedName& name) const { if (name == mathbackgroundAttr || name == mathsizeAttr || name == mathcolorAttr || name == fontsizeAttr || name == backgroundAttr || name == colorAttr || name == fontstyleAttr || name == fontweightAttr || name == fontfamilyAttr) |