diff options
author | Ben Murdoch <benm@google.com> | 2011-05-24 11:24:40 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-06-02 09:53:15 +0100 |
commit | 81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch) | |
tree | 7a9e5ed86ff429fd347a25153107221543909b19 /Source/WebCore/wml | |
parent | 94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff) | |
download | external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.zip external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.gz external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.bz2 |
Merge WebKit at r80534: Intial merge by Git
Change-Id: Ia7a83357124c9e1cdb1debf55d9661ec0bd09a61
Diffstat (limited to 'Source/WebCore/wml')
-rw-r--r-- | Source/WebCore/wml/WMLInputElement.cpp | 20 | ||||
-rw-r--r-- | Source/WebCore/wml/WMLInputElement.h | 5 |
2 files changed, 18 insertions, 7 deletions
diff --git a/Source/WebCore/wml/WMLInputElement.cpp b/Source/WebCore/wml/WMLInputElement.cpp index 687a387..80e4e70 100644 --- a/Source/WebCore/wml/WMLInputElement.cpp +++ b/Source/WebCore/wml/WMLInputElement.cpp @@ -41,6 +41,7 @@ WMLInputElement::WMLInputElement(const QualifiedName& tagName, Document* doc) : WMLFormControlElement(tagName, doc) , m_isPasswordField(false) , m_isEmptyOk(false) + , m_wasChangedSinceLastChangeEvent(false) , m_numOfCharsAllowedByMask(0) { } @@ -173,6 +174,16 @@ void WMLInputElement::setValueFromRenderer(const String& value) InputElement::setValueFromRenderer(m_data, this, this, value); } +bool WMLInputElement::wasChangedSinceLastFormControlChangeEvent() const +{ + return m_wasChangedSinceLastChangeEvent; +} + +void WMLInputElement::setChangedSinceLastFormControlChangeEvent(bool changed) +{ + m_wasChangedSinceLastChangeEvent = changed; +} + bool WMLInputElement::saveFormControlState(String& result) const { if (m_isPasswordField) @@ -296,14 +307,9 @@ void WMLInputElement::defaultEventHandler(Event* evt) if (clickDefaultFormButton) { // Fire onChange for text fields. - RenderObject* r = renderer(); - if (r && toRenderTextControl(r)->wasChangedSinceLastChangeEvent()) { + if (wasChangedSinceLastChangeEvent()) { + setChangedSinceLastChangeEvent(false); dispatchEvent(Event::create(eventNames().changeEvent, true, false)); - - // Refetch the renderer since arbitrary JS code run during onchange can do anything, including destroying it. - r = renderer(); - if (r) - toRenderTextControl(r)->setChangedSinceLastChangeEvent(false); } evt->setDefaultHandled(); diff --git a/Source/WebCore/wml/WMLInputElement.h b/Source/WebCore/wml/WMLInputElement.h index 6c66410..558147a 100644 --- a/Source/WebCore/wml/WMLInputElement.h +++ b/Source/WebCore/wml/WMLInputElement.h @@ -64,8 +64,12 @@ public: virtual void setValue(const String&, bool sendChangeEvent = false); virtual void setValueForUser(const String&); virtual String visibleValue() const { return value(); } + virtual String convertFromVisibleValue(const String& value) const { return value; } virtual void setValueFromRenderer(const String&); + virtual bool wasChangedSinceLastFormControlChangeEvent() const; + virtual void setChangedSinceLastFormControlChangeEvent(bool); + virtual bool saveFormControlState(String& value) const; virtual void restoreFormControlState(const String&); @@ -109,6 +113,7 @@ private: InputElementData m_data; bool m_isPasswordField; bool m_isEmptyOk; + bool m_wasChangedSinceLastChangeEvent; String m_formatMask; unsigned m_numOfCharsAllowedByMask; }; |