summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp10
-rw-r--r--Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp1
2 files changed, 8 insertions, 3 deletions
diff --git a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
index 5385b05d9..dafb0e287 100644
--- a/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
+++ b/Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp
@@ -924,9 +924,13 @@ QWebHitTestResultPrivate::~QWebHitTestResultPrivate()
QWebElement QWebHitTestResultPrivate::elementForInnerNode() const
{
- if (!innerNonSharedNode || !innerNonSharedNode->isElementNode())
- return QWebElement();
- return QWebElement(toElement(innerNonSharedNode));
+ // Uses the similar logic as HitTestResult::innerElement().
+ for (Node* node = innerNonSharedNode; node; node = node->parentNode()) {
+ if (node->isElementNode())
+ return QWebElement(toElement(node));
+ }
+
+ return QWebElement();
}
// ======================================================
diff --git a/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
index f852149d4..f792befcd 100644
--- a/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
+++ b/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
@@ -664,6 +664,7 @@ void tst_QWebFrame::hitTestContent()
QCOMPARE(result.linkText(), QString("link text"));
QWebElement link = result.linkElement();
QCOMPARE(link.attribute("target"), QString("_foo"));
+ QCOMPARE(result.element().tagName(), QString("A"));
}
void tst_QWebFrame::baseUrl_data()