Index: Source/WebCore/html/HTMLFormControlElement.cpp |
=================================================================== |
--- Source/WebCore/html/HTMLFormControlElement.cpp (revision 119198) |
+++ Source/WebCore/html/HTMLFormControlElement.cpp (working copy) |
@@ -116,6 +116,11 @@ |
m_fieldSetAncestorValid = true; |
} |
+void HTMLFormControlElement::ancestorDisabledStateWasChanged() |
+{ |
+ disabledAttributeChanged(); |
+} |
+ |
void HTMLFormControlElement::parseAttribute(Attribute* attr) |
{ |
if (attr->name() == formAttr) |
@@ -129,6 +134,7 @@ |
bool oldReadOnly = m_readOnly; |
m_readOnly = !attr->isNull(); |
if (oldReadOnly != m_readOnly) { |
+ setNeedsWillValidateCheck(); |
setNeedsStyleRecalc(); |
if (renderer() && renderer()->style()->hasAppearance()) |
renderer()->theme()->stateChanged(renderer(), ReadOnlyState); |
@@ -140,11 +146,11 @@ |
requiredAttributeChanged(); |
} else |
HTMLElement::parseAttribute(attr); |
- setNeedsWillValidateCheck(); |
} |
void HTMLFormControlElement::disabledAttributeChanged() |
{ |
+ setNeedsWillValidateCheck(); |
setNeedsStyleRecalc(); |
if (renderer() && renderer()->style()->hasAppearance()) |
renderer()->theme()->stateChanged(renderer(), EnabledState); |
@@ -224,6 +230,7 @@ |
Node::InsertionNotificationRequest HTMLFormControlElement::insertedInto(Node* insertionPoint) |
{ |
+ m_fieldSetAncestorValid = false; |
m_dataListAncestorState = Unknown; |
setNeedsWillValidateCheck(); |
HTMLElement::insertedInto(insertionPoint); |
@@ -367,7 +374,7 @@ |
if (m_dataListAncestorState == Unknown) |
m_dataListAncestorState = NotInsideDataList; |
} |
- return m_dataListAncestorState == NotInsideDataList && !m_disabled && !m_readOnly; |
+ return m_dataListAncestorState == NotInsideDataList && !disabled() && !m_readOnly; |
} |
bool HTMLFormControlElement::willValidate() const |