| 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
|
|
|