OSDN Git Service

Merge WebKit at r73109: Initial merge by git.
[android-x86/external-webkit.git] / WebCore / html / TextFieldInputType.cpp
index 926d0ac..8b74359 100644 (file)
 #include "config.h"
 #include "TextFieldInputType.h"
 
+#include "Frame.h"
 #include "HTMLInputElement.h"
+#include "KeyboardEvent.h"
 #include "RenderTextControlSingleLine.h"
+#include "TextEvent.h"
 #include <wtf/text/WTFString.h>
 
 namespace WebCore {
@@ -47,6 +50,37 @@ bool TextFieldInputType::valueMissing(const String& value) const
     return value.isEmpty();
 }
 
+bool TextFieldInputType::handleKeydownEvent(KeyboardEvent* event)
+{
+    if (!element()->focused())
+        return false;
+    Frame* frame = element()->document()->frame();
+    if (!frame || !frame->editor()->doTextFieldCommandFromEvent(element(), event))
+        return false;
+    event->setDefaultHandled();
+    return true;
+}
+
+bool TextFieldInputType::handleKeydownEventForSpinButton(KeyboardEvent* event)
+{
+    const String& key = event->keyIdentifier();
+    int step = 0;
+    if (key == "Up")
+        step = 1;
+    else if (key == "Down")
+        step = -1;
+    else
+        return false;
+    element()->stepUpFromRenderer(step);
+    event->setDefaultHandled();
+    return true;
+}
+
+bool TextFieldInputType::shouldSubmitImplicitly(Event* event)
+{
+    return (event->type() == eventNames().textInputEvent && event->isTextEvent() && static_cast<TextEvent*>(event)->data() == "\n") || InputType::shouldSubmitImplicitly(event);
+}
+
 RenderObject* TextFieldInputType::createRenderer(RenderArena* arena, RenderStyle*) const
 {
     return new (arena) RenderTextControlSingleLine(element(), element()->placeholderShouldBeVisible());