aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2021-04-20 10:58:38 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2021-04-20 09:43:14 +0000
commit584f622a2323aac93d63bb1abe964902ebbb49a9 (patch)
tree886c43a6b2f15314802218e12084a45cf6c1438a
parent8eed6026e6352f688c5ec35d4529763f33e62b02 (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.cpp11
-rw-r--r--src/qlitehtmlwidget.h1
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;