1
0
forked from pool/libqt5-qtbase
libqt5-qtbase/0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch
Dominique Leuenberger d9567c040d Accepting request 638527 from KDE:Qt5
- Add patch to avoid lag on startup with the modesetting driver on
  intel (QTBUG-70760):
  * 0001-xcb-Don-t-get-initial-screen-rotation.patch

- Update to 5.11.2
  * New bugfix release
  * For more details please see:
  * http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.11.2/?h=v5.11.2
- Refresh patches:
  * 0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch
  * tell-the-truth-about-private-api.patch
- Remove patches, now upstream:
  * 0001-Fix-qmake-build-with-glibc-2.28.patch
- Add patch to fix build on 32-bit:
  * Export-qt_open64-from-QtCore.patch

OBS-URL: https://build.opensuse.org/request/show/638527
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtbase?expand=0&rev=88
2018-10-01 06:13:22 +00:00

38 lines
1.4 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(-)
Index: qtbase-everywhere-src-5.11.2/src/plugins/platforms/xcb/qxcbscreen.cpp
===================================================================
--- qtbase-everywhere-src-5.11.2.orig/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ qtbase-everywhere-src-5.11.2/src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -681,7 +681,15 @@ QDpi QXcbScreen::logicalDpi() const
if (forcedDpi > 0) {
return QDpi(forcedDpi, forcedDpi);
}
- return m_virtualDesktop->dpi();
+
+ // By default, X fakes the virtual size to be 96 dpi (+-rounding),
+ // so if it's different the user overwrote it.
+ if (qRound(m_virtualDesktop->dpi().first) != 96 ||
+ qRound(m_virtualDesktop->dpi().second) != 96) {
+ return m_virtualDesktop->dpi();
+ }
+
+ return QDpi(m_pixelDensity * 96, m_pixelDensity * 96);
}
qreal QXcbScreen::pixelDensity() const