diff options
| author | Sakaria Pouke <sakaria.pouke@qt.io> | 2025-10-09 13:12:46 +0300 |
|---|---|---|
| committer | Sakaria Pouke <sakaria.pouke@qt.io> | 2025-10-13 09:01:07 +0300 |
| commit | d7d9b7b94b0ca1e8d79414e9161fe0da468eaa35 (patch) | |
| tree | aed658f1d299a7880975575878fe28e3b9100339 | |
| parent | a7a8dc3e2a3e43281473c06a967ed71e2927ded9 (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.cpp | 6 |
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()) { |
