summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSakaria Pouke <sakaria.pouke@qt.io>2025-10-09 13:12:46 +0300
committerSakaria Pouke <sakaria.pouke@qt.io>2025-10-13 09:01:07 +0300
commitd7d9b7b94b0ca1e8d79414e9161fe0da468eaa35 (patch)
treeaed658f1d299a7880975575878fe28e3b9100339
parenta7a8dc3e2a3e43281473c06a967ed71e2927ded9 (diff)
Consider viewport coordinates for mouse events
Fixes: QTBUG-131443 Pick-to: 6.10 6.8 Change-Id: I483be0d0ed6002ab334d4992169c66d086551841 Reviewed-by: Sami Varanka <sami.varanka@qt.io> Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r--src/pdfwidgets/qpdfview.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/pdfwidgets/qpdfview.cpp b/src/pdfwidgets/qpdfview.cpp
index 1e817124b..2bd87b917 100644
--- a/src/pdfwidgets/qpdfview.cpp
+++ b/src/pdfwidgets/qpdfview.cpp
@@ -676,7 +676,8 @@ void QPdfView::mouseMoveEvent(QMouseEvent *event)
const QTransform screenInvTransform = d->screenScaleTransform(page).inverted();
const QRect pageGeometry = it.value().first;
if (pageGeometry.contains(event->position().toPoint())) {
- const QPointF posInPoints = screenInvTransform.map(event->position() - pageGeometry.topLeft());
+ QPointF posInPoints = screenInvTransform.map(event->position() - pageGeometry.topLeft()
+ + d->m_viewport.topLeft());
d->m_linkModel.setPage(page);
auto dest = d->m_linkModel.linkAt(posInPoints);
setCursor(dest.isValid() ? Qt::PointingHandCursor : Qt::ArrowCursor);
@@ -695,7 +696,8 @@ void QPdfView::mouseReleaseEvent(QMouseEvent *event)
const QTransform screenInvTransform = d->screenScaleTransform(page).inverted();
const QRect pageGeometry = it.value().first;
if (pageGeometry.contains(event->position().toPoint())) {
- const QPointF posInPoints = screenInvTransform.map(event->position() - pageGeometry.topLeft());
+ QPointF posInPoints = screenInvTransform.map(event->position() - pageGeometry.topLeft()
+ + d->m_viewport.topLeft());
d->m_linkModel.setPage(page);
auto dest = d->m_linkModel.linkAt(posInPoints);
if (dest.isValid()) {