#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 {
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());