forked from pool/libqt5-qtbase
43852afb3d
OBS-URL: https://build.opensuse.org/request/show/620458 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtbase?expand=0&rev=85
41 lines
1.3 KiB
Diff
41 lines
1.3 KiB
Diff
From 267ab09b87dd7e2ae7dd3e85a76398506e7f1ae9 Mon Sep 17 00:00:00 2001
|
|
From: Fabian Vogt <fabian@ritter-vogt.de>
|
|
Date: Wed, 25 Apr 2018 18:34:01 +0200
|
|
Subject: [PATCH 2/2] xcb: Use the screen's physical DPI as logical DPI, unless
|
|
overwritten
|
|
|
|
The size of the virtual screen is most of the time meaningless, as X fakes it
|
|
to result in 96 DPI, irregardless of the actual monitor DPI.
|
|
|
|
This results in wrong font rendering on non-96 DPI monitors.
|
|
|
|
Task-number: QTBUG-67928
|
|
---
|
|
src/plugins/platforms/xcb/qxcbscreen.cpp | 10 +++++++++-
|
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
|
|
index 7e898db17c..21076a0812 100644
|
|
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
|
|
+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
|
|
@@ -606,7 +606,15 @@ QDpi QXcbScreen::logicalDpi() const
|
|
if (forcedDpi > 0) {
|
|
return QDpi(forcedDpi, forcedDpi);
|
|
}
|
|
- return virtualDpi();
|
|
+
|
|
+ // By default, X fakes the virtual size to be 96 dpi (+-rounding),
|
|
+ // so if it's different the user overwrote it.
|
|
+ if (qRound(virtualDpi().first) != 96 ||
|
|
+ qRound(virtualDpi().second) != 96) {
|
|
+ return virtualDpi();
|
|
+ }
|
|
+
|
|
+ return QDpi(m_pixelDensity * 96, m_pixelDensity * 96);
|
|
}
|
|
|
|
qreal QXcbScreen::pixelDensity() const
|
|
--
|
|
2.17.1
|
|
|