diff options
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/WebKit/qt/WebCoreSupport/QWebFrameAdapter.cpp | 10 | ||||
| -rw-r--r-- | Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp | 1 |
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() |
