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/html/HTMLFormControlElement.cpp | |
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/html/HTMLFormControlElement.cpp')
-rw-r--r-- | Source/WebCore/html/HTMLFormControlElement.cpp | 22 |
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())); } |