Index: WebCore/wml/WMLAElement.cpp |
=================================================================== |
--- WebCore/wml/WMLAElement.cpp (revision 67261) |
+++ WebCore/wml/WMLAElement.cpp (working copy) |
@@ -4,7 +4,7 @@ |
* Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
* (C) 1999 Antti Koivisto (koivisto@kde.org) |
* (C) 2000 Simon Hausmann <hausmann@kde.org> |
- * Copyright (C) 2003, 2006, 2007, 2008 Apple Inc. All rights reserved. |
+ * Copyright (C) 2003, 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. |
* (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
* |
* This library is free software; you can redistribute it and/or |
@@ -35,6 +35,7 @@ |
#include "EventNames.h" |
#include "Frame.h" |
#include "FrameLoader.h" |
+#include "HTMLAnchorElement.h" |
#include "HTMLNames.h" |
#include "KeyboardEvent.h" |
#include "MouseEvent.h" |
@@ -119,37 +120,17 @@ |
void WMLAElement::defaultEventHandler(Event* event) |
{ |
- if (isLink() && (event->type() == eventNames().clickEvent || (event->type() == eventNames().keydownEvent && focused()))) { |
- MouseEvent* e = 0; |
- if (event->type() == eventNames().clickEvent && event->isMouseEvent()) |
- e = static_cast<MouseEvent*>(event); |
- |
- KeyboardEvent* k = 0; |
- if (event->type() == eventNames().keydownEvent && event->isKeyboardEvent()) |
- k = static_cast<KeyboardEvent*>(event); |
- |
- if (e && e->button() == RightButton) { |
- WMLElement::defaultEventHandler(event); |
- return; |
- } |
- |
- if (k) { |
- if (k->keyIdentifier() != "Enter") { |
- WMLElement::defaultEventHandler(event); |
- return; |
- } |
- |
+ if (isLink()) { |
+ if (focused() && isEnterKeyKeydownEvent(event)) { |
event->setDefaultHandled(); |
dispatchSimulatedClick(event); |
return; |
} |
- |
- if (!event->defaultPrevented() && document()->frame()) { |
- KURL url = document()->completeURL(deprecatedParseURL(getAttribute(HTMLNames::hrefAttr))); |
- document()->frame()->loader()->urlSelected(url, target(), event, false, false, true, SendReferrer); |
- } |
- event->setDefaultHandled(); |
+ if (isLinkClick(event)) { |
+ handleLinkClick(document(), deprecatedParseURL(getAttribute(HTMLNames::hrefAttr)), target(), event); |
+ return; |
+ } |
} |
WMLElement::defaultEventHandler(event); |