summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/TextControlInnerElements.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-08-11 14:44:44 +0100
committerBen Murdoch <benm@google.com>2010-08-12 19:15:41 +0100
commitdd8bb3de4f353a81954234999f1fea748aee2ea9 (patch)
tree729b52bf09294f0d6c67cd5ea80aee1b727b7bd8 /WebCore/rendering/TextControlInnerElements.cpp
parentf3d41ba51d86bf719c7a65ab5297aea3c17e2d98 (diff)
downloadexternal_webkit-dd8bb3de4f353a81954234999f1fea748aee2ea9.zip
external_webkit-dd8bb3de4f353a81954234999f1fea748aee2ea9.tar.gz
external_webkit-dd8bb3de4f353a81954234999f1fea748aee2ea9.tar.bz2
Merge WebKit at r65072 : Initial merge by git.
Change-Id: Ibcf418498376b2660aacb7f8d46ea7085ef91585
Diffstat (limited to 'WebCore/rendering/TextControlInnerElements.cpp')
-rw-r--r--WebCore/rendering/TextControlInnerElements.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/WebCore/rendering/TextControlInnerElements.cpp b/WebCore/rendering/TextControlInnerElements.cpp
index b29876a..cf0e864 100644
--- a/WebCore/rendering/TextControlInnerElements.cpp
+++ b/WebCore/rendering/TextControlInnerElements.cpp
@@ -342,15 +342,15 @@ void SpinButtonElement::setHovered(bool flag)
#if ENABLE(INPUT_SPEECH)
-inline InputFieldSpeechButtonElement::InputFieldSpeechButtonElement(Document* document)
- : TextControlInnerElement(document)
+inline InputFieldSpeechButtonElement::InputFieldSpeechButtonElement(Node* shadowParent)
+ : TextControlInnerElement(shadowParent->document(), shadowParent)
, m_capturing(false)
{
}
-PassRefPtr<InputFieldSpeechButtonElement> InputFieldSpeechButtonElement::create(Document* document)
+PassRefPtr<InputFieldSpeechButtonElement> InputFieldSpeechButtonElement::create(Node* shadowParent)
{
- return adoptRef(new InputFieldSpeechButtonElement(document));
+ return adoptRef(new InputFieldSpeechButtonElement(shadowParent));
}
void InputFieldSpeechButtonElement::defaultEventHandler(Event* event)
@@ -372,20 +372,21 @@ void InputFieldSpeechButtonElement::defaultEventHandler(Event* event)
input->select();
event->setDefaultHandled();
}
- // On mouse up, start speech recognition.
+ // On mouse up, release capture cleanly.
if (event->type() == eventNames().mouseupEvent && event->isMouseEvent() && static_cast<MouseEvent*>(event)->button() == LeftButton) {
if (m_capturing && renderer() && renderer()->visibleToHitTesting()) {
if (Frame* frame = document()->frame()) {
frame->eventHandler()->setCapturingMouseEventsNode(0);
m_capturing = false;
}
- if (hovered()) {
- speechInput()->startRecognition(this);
- event->setDefaultHandled();
- }
}
}
+ if (event->type() == eventNames().clickEvent) {
+ speechInput()->startRecognition(this);
+ event->setDefaultHandled();
+ }
+
if (!event->defaultHandled())
HTMLDivElement::defaultEventHandler(event);
}