https://bugs.kde.org/show_bug.cgi?id=461996
--- Comment #12 from Laurent <kde94a0183f4466...@lpsink.fastmail.com> --- Note that there is already a workaround in the code for dealing with Qt returning bad DPI values: https://invent.kde.org/graphics/okular/-/blob/master/core/utils.cpp#L54 > if (qAbs(res.width() - res.height()) / qMin(res.height(), res.width()) < > 0.15) The code checks if the pixels are nonsquare by less than 15%. If not, it falls back on a default of 72 DPI. If my computations are correct, lowering the threshold to 10% would fix the problem for Eric. The fallback could also be to force square pixels by discarding one axis, instead of discarding all DPI information. Proposed patch: diff --git a/core/utils.cpp b/core/utils.cpp index 9f5f47244..fec40da94 100644 --- a/core/utils.cpp +++ b/core/utils.cpp @@ -51,10 +51,11 @@ QSizeF Utils::realDpi(const QWindow *windowOnScreen) if (screen) { const QSizeF res(screen->physicalDotsPerInchX(), screen->physicalDotsPerInchY()); if (res.width() > 0 && res.height() > 0) { - if (qAbs(res.width() - res.height()) / qMin(res.height(), res.width()) < 0.15) { + if (qAbs(res.width() - res.height()) / qMin(res.height(), res.width()) < 0.10) { return res; } else { qCDebug(OkularCoreDebug) << "QScreen calculation returned a non square dpi." << res << ". Falling back"; + return QSizeF(res.width(), res.width()); } } } -- You are receiving this mail because: You are the assignee for the bug.