summaryrefslogtreecommitdiff
path: root/src/pdf
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2022-06-22 22:30:53 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2022-06-28 06:08:16 +0200
commit9bf35536d577d5d86a1c1ba05d4ef7662150c238 (patch)
tree3b920a64f87fe8ce2221412c992af5c2057aaf66 /src/pdf
parent675674fcec744f4556c3685c4128afacb7e8d829 (diff)
downloadqtwebengine-9bf35536d577d5d86a1c1ba05d4ef7662150c238.tar.gz
QPdfLinkModel: deal with flipped rectangle coordinates
Chromium's pdf/pdfium/pdfium_page.cc provides us a clue that this can happen: at least they seem to have found a need for a workaround there. Task-number: QTBUG-100630 Change-Id: I8b6091389d63687b4c6d9d31252b9b5a873347bc Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src/pdf')
-rw-r--r--src/pdf/qpdflinkmodel.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pdf/qpdflinkmodel.cpp b/src/pdf/qpdflinkmodel.cpp
index dc3c18c8e..4fc9d8aea 100644
--- a/src/pdf/qpdflinkmodel.cpp
+++ b/src/pdf/qpdflinkmodel.cpp
@@ -180,6 +180,12 @@ void QPdfLinkModelPrivate::update()
qCWarning(qLcLink) << "skipping link with invalid bounding box";
continue; // while enumerating links
}
+ // In case horizontal/vertical coordinates are flipped, swap them.
+ if (rect.right < rect.left)
+ std::swap(rect.right, rect.left);
+ if (rect.bottom > rect.top)
+ std::swap(rect.bottom, rect.top);
+
QPdfLink linkData;
linkData.d->rects << QRectF(rect.left, pageHeight - rect.top,
rect.right - rect.left, rect.top - rect.bottom);