summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/wml
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-05-24 11:24:40 +0100
committerBen Murdoch <benm@google.com>2011-06-02 09:53:15 +0100
commit81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch)
tree7a9e5ed86ff429fd347a25153107221543909b19 /Source/WebCore/wml
parent94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff)
downloadexternal_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.cpp20
-rw-r--r--Source/WebCore/wml/WMLInputElement.h5
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;
};