+2006-08-11 David Hyatt <hyatt@apple.com>
+
+ Fix for bug 10349, make sure to call setChanged when an anchor changes
+ from not being a link to being a link (and vice versa).
+
+ Test is in fast/dynamic/link-href-change.html
+
+ Reviewed by darin
+
+ * html/HTMLAnchorElement.cpp:
+ (WebCore::HTMLAnchorElement::HTMLAnchorElement):
+ (WebCore::HTMLAnchorElement::parseMappedAttribute):
+ * html/HTMLAnchorElement.h:
+ * html/HTMLAreaElement.cpp:
+ (WebCore::HTMLAreaElement::parseMappedAttribute):
+
2006-08-09 Rob Buis <buis@kde.org>
Reviewed by Darin.
HTMLAnchorElement::HTMLAnchorElement(Document* doc)
: HTMLElement(aTag, doc)
{
- m_hasTarget = false;
}
HTMLAnchorElement::HTMLAnchorElement(const QualifiedName& tagName, Document* doc)
: HTMLElement(tagName, doc)
{
- m_hasTarget = false;
}
HTMLAnchorElement::~HTMLAnchorElement()
void HTMLAnchorElement::parseMappedAttribute(MappedAttribute *attr)
{
- if (attr->name() == hrefAttr)
+ if (attr->name() == hrefAttr) {
+ bool wasLink = m_isLink;
m_isLink = !attr->isNull();
- else if (attr->name() == targetAttr)
- m_hasTarget = !attr->isNull();
- else if (attr->name() == nameAttr ||
+ if (wasLink != m_isLink)
+ setChanged();
+ } else if (attr->name() == nameAttr ||
attr->name() == titleAttr ||
attr->name() == relAttr) {
// Do nothing.
} else if (attr->name() == coordsAttr) {
delete [] m_coords;
m_coords = attr->value().toCoordsArray(m_coordsLen);
- } else if (attr->name() == targetAttr) {
- m_hasTarget = !attr->isNull();
} else if (attr->name() == altAttr || attr->name() == accesskeyAttr) {
// Do nothing.
} else