summaryrefslogtreecommitdiffstats
path: root/WebCore/html/HTMLAreaElement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/html/HTMLAreaElement.cpp')
-rw-r--r--WebCore/html/HTMLAreaElement.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/WebCore/html/HTMLAreaElement.cpp b/WebCore/html/HTMLAreaElement.cpp
index 3547cd9..0155bce 100644
--- a/WebCore/html/HTMLAreaElement.cpp
+++ b/WebCore/html/HTMLAreaElement.cpp
@@ -174,12 +174,17 @@ HTMLImageElement* HTMLAreaElement::imageElement() const
bool HTMLAreaElement::isKeyboardFocusable(KeyboardEvent*) const
{
- return supportsFocus();
+ return isFocusable();
+}
+
+bool HTMLAreaElement::isMouseFocusable() const
+{
+ return isFocusable();
}
bool HTMLAreaElement::isFocusable() const
{
- return supportsFocus();
+ return supportsFocus() && Element::tabIndex() >= 0;
}
void HTMLAreaElement::dispatchBlurEvent()
@@ -192,7 +197,10 @@ void HTMLAreaElement::dispatchBlurEvent()
void HTMLAreaElement::updateFocusAppearance(bool restorePreviousSelection)
{
- Node* parent = parentNode();
+ if (!isFocusable())
+ return;
+
+ ContainerNode* parent = parentNode();
if (!parent || !parent->hasTagName(mapTag))
return;