diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2021-04-20 10:58:38 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2021-04-20 09:43:14 +0000 |
commit | 584f622a2323aac93d63bb1abe964902ebbb49a9 (patch) | |
tree | 886c43a6b2f15314802218e12084a45cf6c1438a | |
parent | 8eed6026e6352f688c5ec35d4529763f33e62b02 (diff) |
Generate linkHighlighted() also on leave event
When a link lies near the border of the browser window
and after hovering over the link we leave the window
we are not receiving linkHighlighted() signal with empty url.
This patch fixes it.
Change-Id: I1be55a044997fcce748bcf18c71b51efd705cffd
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r-- | src/qlitehtmlwidget.cpp | 11 | ||||
-rw-r--r-- | src/qlitehtmlwidget.h | 1 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/qlitehtmlwidget.cpp b/src/qlitehtmlwidget.cpp index 975a389..d680552 100644 --- a/src/qlitehtmlwidget.cpp +++ b/src/qlitehtmlwidget.cpp @@ -594,6 +594,7 @@ void QLiteHtmlWidget::leaveEvent(QEvent *event) const QVector<QRect> areas = d->documentContainer.leaveEvent(); for (const QRect &r : areas) viewport()->update(fromVirtual(r.translated(-scrollPosition()))); + setHightlightedLink(QUrl()); } void QLiteHtmlWidget::contextMenuEvent(QContextMenuEvent *event) @@ -624,10 +625,14 @@ void QLiteHtmlWidget::updateHightlightedLink() QPoint viewportPos; QPoint pos; htmlPos(mapFromGlobal(QCursor::pos()), &viewportPos, &pos); - const QUrl highlightedUrl = d->documentContainer.linkAt(pos, viewportPos); - if (d->lastHighlightedLink == highlightedUrl) + setHightlightedLink(d->documentContainer.linkAt(pos, viewportPos)); +} + +void QLiteHtmlWidget::setHightlightedLink(const QUrl &url) +{ + if (d->lastHighlightedLink == url) return; - d->lastHighlightedLink = highlightedUrl; + d->lastHighlightedLink = url; emit linkHighlighted(d->lastHighlightedLink); } diff --git a/src/qlitehtmlwidget.h b/src/qlitehtmlwidget.h index 4b0de76..3c41314 100644 --- a/src/qlitehtmlwidget.h +++ b/src/qlitehtmlwidget.h @@ -86,6 +86,7 @@ protected: private: void updateHightlightedLink(); + void setHightlightedLink(const QUrl &url); void withFixedTextPosition(const std::function<void()> &action); void render(); QPoint scrollPosition() const; |