OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Apple Inc. All rights reserv
ed. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Apple Inc. All rights reserv
ed. |
6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
7 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) | 7 * Copyright (C) 2007 Samuel Weinig (sam@webkit.org) |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "CSSValueKeywords.h" | 29 #include "CSSValueKeywords.h" |
30 #include "HTMLNames.h" | 30 #include "HTMLNames.h" |
31 #include "core/dom/BeforeTextInsertedEvent.h" | 31 #include "core/dom/BeforeTextInsertedEvent.h" |
32 #include "core/dom/Document.h" | 32 #include "core/dom/Document.h" |
33 #include "core/dom/Event.h" | 33 #include "core/dom/Event.h" |
34 #include "core/dom/EventNames.h" | 34 #include "core/dom/EventNames.h" |
35 #include "core/dom/ExceptionCode.h" | 35 #include "core/dom/ExceptionCode.h" |
36 #include "core/dom/ExceptionCodePlaceholder.h" | 36 #include "core/dom/ExceptionCodePlaceholder.h" |
37 #include "core/dom/Text.h" | 37 #include "core/dom/Text.h" |
38 #include "core/dom/shadow/ShadowRoot.h" | 38 #include "core/dom/shadow/ShadowRoot.h" |
| 39 #include "core/editing/Editor.h" |
39 #include "core/editing/FrameSelection.h" | 40 #include "core/editing/FrameSelection.h" |
40 #include "core/editing/TextIterator.h" | 41 #include "core/editing/TextIterator.h" |
41 #include "core/html/FormController.h" | 42 #include "core/html/FormController.h" |
42 #include "core/html/FormDataList.h" | 43 #include "core/html/FormDataList.h" |
43 #include "core/html/shadow/TextControlInnerElements.h" | 44 #include "core/html/shadow/TextControlInnerElements.h" |
44 #include "core/page/Frame.h" | 45 #include "core/page/Frame.h" |
45 #include "core/platform/LocalizedStrings.h" | 46 #include "core/platform/LocalizedStrings.h" |
46 #include "core/rendering/RenderTextControlMultiLine.h" | 47 #include "core/rendering/RenderTextControlMultiLine.h" |
47 #include "wtf/StdLibExtras.h" | 48 #include "wtf/StdLibExtras.h" |
48 #include "wtf/text/StringBuilder.h" | 49 #include "wtf/text/StringBuilder.h" |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 void HTMLTextAreaElement::defaultEventHandler(Event* event) | 264 void HTMLTextAreaElement::defaultEventHandler(Event* event) |
264 { | 265 { |
265 if (renderer() && (event->isMouseEvent() || event->isDragEvent() || event->h
asInterface(eventNames().interfaceForWheelEvent) || event->type() == eventNames(
).blurEvent)) | 266 if (renderer() && (event->isMouseEvent() || event->isDragEvent() || event->h
asInterface(eventNames().interfaceForWheelEvent) || event->type() == eventNames(
).blurEvent)) |
266 forwardEvent(event); | 267 forwardEvent(event); |
267 else if (renderer() && event->isBeforeTextInsertedEvent()) | 268 else if (renderer() && event->isBeforeTextInsertedEvent()) |
268 handleBeforeTextInsertedEvent(static_cast<BeforeTextInsertedEvent*>(even
t)); | 269 handleBeforeTextInsertedEvent(static_cast<BeforeTextInsertedEvent*>(even
t)); |
269 | 270 |
270 HTMLTextFormControlElement::defaultEventHandler(event); | 271 HTMLTextFormControlElement::defaultEventHandler(event); |
271 } | 272 } |
272 | 273 |
| 274 void HTMLTextAreaElement::handleFocusEvent(Element* oldFocusedNode, FocusDirecti
on direction) |
| 275 { |
| 276 if (Frame* frame = document()->frame()) |
| 277 frame->editor()->textAreaDidBeginEditing(this); |
| 278 } |
| 279 |
273 void HTMLTextAreaElement::subtreeHasChanged() | 280 void HTMLTextAreaElement::subtreeHasChanged() |
274 { | 281 { |
275 setChangedSinceLastFormControlChangeEvent(true); | 282 setChangedSinceLastFormControlChangeEvent(true); |
276 setFormControlValueMatchesRenderer(false); | 283 setFormControlValueMatchesRenderer(false); |
277 setNeedsValidityCheck(); | 284 setNeedsValidityCheck(); |
278 | 285 |
279 if (!focused()) | 286 if (!focused()) |
280 return; | 287 return; |
281 | 288 |
282 // When typing in a textarea, childrenChanged is not called, so we need to f
orce the directionality check. | 289 // When typing in a textarea, childrenChanged is not called, so we need to f
orce the directionality check. |
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
549 RefPtr<HTMLDivElement> placeholder = HTMLDivElement::create(document()); | 556 RefPtr<HTMLDivElement> placeholder = HTMLDivElement::create(document()); |
550 m_placeholder = placeholder.get(); | 557 m_placeholder = placeholder.get(); |
551 m_placeholder->setPseudo(AtomicString("-webkit-input-placeholder", Atomi
cString::ConstructFromLiteral)); | 558 m_placeholder->setPseudo(AtomicString("-webkit-input-placeholder", Atomi
cString::ConstructFromLiteral)); |
552 userAgentShadowRoot()->insertBefore(m_placeholder, innerTextElement()->n
extSibling(), ASSERT_NO_EXCEPTION); | 559 userAgentShadowRoot()->insertBefore(m_placeholder, innerTextElement()->n
extSibling(), ASSERT_NO_EXCEPTION); |
553 } | 560 } |
554 m_placeholder->setInnerText(placeholderText, ASSERT_NO_EXCEPTION); | 561 m_placeholder->setInnerText(placeholderText, ASSERT_NO_EXCEPTION); |
555 fixPlaceholderRenderer(m_placeholder, innerTextElement()); | 562 fixPlaceholderRenderer(m_placeholder, innerTextElement()); |
556 } | 563 } |
557 | 564 |
558 } | 565 } |
OLD | NEW |