summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/html/HTMLFormControlElement.cpp
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/html/HTMLFormControlElement.cpp
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/html/HTMLFormControlElement.cpp')
-rw-r--r--Source/WebCore/html/HTMLFormControlElement.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/Source/WebCore/html/HTMLFormControlElement.cpp b/Source/WebCore/html/HTMLFormControlElement.cpp
index 2f3db08..4b3c48a 100644
--- a/Source/WebCore/html/HTMLFormControlElement.cpp
+++ b/Source/WebCore/html/HTMLFormControlElement.cpp
@@ -65,6 +65,7 @@ HTMLFormControlElement::HTMLFormControlElement(const QualifiedName& tagName, Doc
, m_willValidateInitialized(false)
, m_willValidate(true)
, m_isValid(true)
+ , m_wasChangedSinceLastFormControlChangeEvent(false)
{
if (!this->form())
setForm(findFormAncestor());
@@ -130,7 +131,7 @@ void HTMLFormControlElement::attach()
// on the renderer.
if (renderer())
renderer()->updateFromElement();
-
+
// Focus the element if it should honour its autofocus attribute.
// We have to determine if the element is a TextArea/Input/Button/Select,
// if input type hidden ignore autofocus. So if disabled or readonly.
@@ -188,13 +189,25 @@ void HTMLFormControlElement::setName(const AtomicString& value)
setAttribute(nameAttr, value);
}
+bool HTMLFormControlElement::wasChangedSinceLastFormControlChangeEvent() const
+{
+ return m_wasChangedSinceLastFormControlChangeEvent;
+}
+
+void HTMLFormControlElement::setChangedSinceLastFormControlChangeEvent(bool changed)
+{
+ m_wasChangedSinceLastFormControlChangeEvent = changed;
+}
+
void HTMLFormControlElement::dispatchFormControlChangeEvent()
{
HTMLElement::dispatchChangeEvents();
+ setChangedSinceLastFormControlChangeEvent(false);
}
void HTMLFormControlElement::dispatchFormControlInputEvent()
{
+ setChangedSinceLastFormControlChangeEvent(true);
HTMLElement::dispatchInputEvents();
}
@@ -251,7 +264,7 @@ bool HTMLFormControlElement::isKeyboardFocusable(KeyboardEvent* event) const
{
if (isFocusable())
if (document()->frame())
- return document()->frame()->eventHandler()->tabsToAllControls(event);
+ return document()->frame()->eventHandler()->tabsToAllFormControls(event);
return false;
}
@@ -451,13 +464,13 @@ PassRefPtr<NodeList> HTMLFormControlElement::labels()
return 0;
if (!document())
return 0;
-
+
NodeRareData* data = Node::ensureRareData();
if (!data->nodeLists()) {
data->setNodeLists(NodeListsNodeData::create());
document()->addNodeListCache();
}
-
+
return LabelsNodeList::create(this);
}
@@ -582,6 +595,7 @@ bool HTMLTextFormControlElement::placeholderShouldBeVisible() const
{
return supportsPlaceholder()
&& isEmptyValue()
+ && isEmptySuggestedValue()
&& !isPlaceholderEmpty()
&& (document()->focusedNode() != this || (renderer() && renderer()->theme()->shouldShowPlaceholderWhenFocused()));
}