5.8 backport: Ensure a pixel density of at least 1 for Qt::AA_EnableHighDpiScaling (QTBUG-56140)
This commit is contained in:
parent
9e2e7ad9bd
commit
8c7fe210fe
|
@ -0,0 +1,48 @@
|
||||||
|
diff -up qtbase-opensource-src-5.7.1/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp.0295 qtbase-opensource-src-5.7.1/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp
|
||||||
|
--- qtbase-opensource-src-5.7.1/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp.0295 2017-02-09 07:41:56.976681266 -0600
|
||||||
|
+++ qtbase-opensource-src-5.7.1/src/plugins/platforms/eglfs/qeglfsdeviceintegration.cpp 2017-02-09 07:43:31.812667108 -0600
|
||||||
|
@@ -222,7 +222,7 @@ QDpi QEGLDeviceIntegration::logicalDpi()
|
||||||
|
|
||||||
|
qreal QEGLDeviceIntegration::pixelDensity() const
|
||||||
|
{
|
||||||
|
- return qRound(logicalDpi().first / qreal(100));
|
||||||
|
+ return qMax(1, qRound(logicalDpi().first / qreal(100)));
|
||||||
|
}
|
||||||
|
|
||||||
|
Qt::ScreenOrientation QEGLDeviceIntegration::nativeOrientation() const
|
||||||
|
diff -up qtbase-opensource-src-5.7.1/src/plugins/platforms/windows/qwindowsscreen.cpp.0295 qtbase-opensource-src-5.7.1/src/plugins/platforms/windows/qwindowsscreen.cpp
|
||||||
|
--- qtbase-opensource-src-5.7.1/src/plugins/platforms/windows/qwindowsscreen.cpp.0295 2016-12-01 02:17:04.000000000 -0600
|
||||||
|
+++ qtbase-opensource-src-5.7.1/src/plugins/platforms/windows/qwindowsscreen.cpp 2017-02-09 07:41:56.976681266 -0600
|
||||||
|
@@ -264,7 +264,7 @@ qreal QWindowsScreen::pixelDensity() con
|
||||||
|
// the pixel density since it is reflects the Windows UI scaling.
|
||||||
|
// High DPI auto scaling should be disabled when the user chooses
|
||||||
|
// small fonts on a High DPI monitor, resulting in lower logical DPI.
|
||||||
|
- return qRound(logicalDpi().first / 96);
|
||||||
|
+ return qMax(1, qRound(logicalDpi().first / 96));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
diff -up qtbase-opensource-src-5.7.1/src/plugins/platforms/winrt/qwinrtscreen.cpp.0295 qtbase-opensource-src-5.7.1/src/plugins/platforms/winrt/qwinrtscreen.cpp
|
||||||
|
--- qtbase-opensource-src-5.7.1/src/plugins/platforms/winrt/qwinrtscreen.cpp.0295 2016-12-01 02:17:04.000000000 -0600
|
||||||
|
+++ qtbase-opensource-src-5.7.1/src/plugins/platforms/winrt/qwinrtscreen.cpp 2017-02-09 07:41:56.976681266 -0600
|
||||||
|
@@ -644,7 +644,7 @@ QDpi QWinRTScreen::logicalDpi() const
|
||||||
|
qreal QWinRTScreen::pixelDensity() const
|
||||||
|
{
|
||||||
|
Q_D(const QWinRTScreen);
|
||||||
|
- return qRound(d->logicalDpi / 96);
|
||||||
|
+ return qMax(1, qRound(d->logicalDpi / 96));
|
||||||
|
}
|
||||||
|
|
||||||
|
qreal QWinRTScreen::scaleFactor() const
|
||||||
|
diff -up qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp.0295 qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp
|
||||||
|
--- qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp.0295 2016-12-01 02:17:04.000000000 -0600
|
||||||
|
+++ qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp 2017-02-09 07:41:56.977681276 -0600
|
||||||
|
@@ -633,7 +633,7 @@ void QXcbScreen::updateGeometry(const QR
|
||||||
|
m_sizeMillimeters = sizeInMillimeters(xGeometry.size(), virtualDpi());
|
||||||
|
|
||||||
|
qreal dpi = xGeometry.width() / physicalSize().width() * qreal(25.4);
|
||||||
|
- m_pixelDensity = qRound(dpi/96);
|
||||||
|
+ m_pixelDensity = qMax(1, qRound(dpi/96));
|
||||||
|
m_geometry = QRect(xGeometry.topLeft(), xGeometry.size());
|
||||||
|
m_availableGeometry = xGeometry & m_virtualDesktop->workArea();
|
||||||
|
QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry);
|
|
@ -66,7 +66,7 @@ BuildRequires: pkgconfig(libsystemd)
|
||||||
Name: qt5-qtbase
|
Name: qt5-qtbase
|
||||||
Summary: Qt5 - QtBase components
|
Summary: Qt5 - QtBase components
|
||||||
Version: 5.7.1
|
Version: 5.7.1
|
||||||
Release: 13%{?dist}
|
Release: 14%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||||
|
@ -129,10 +129,13 @@ Patch63: qt5-qtbase-5.7.1-openssl11.patch
|
||||||
Patch64: qt5-qtbase-5.7.1-firebird.patch
|
Patch64: qt5-qtbase-5.7.1-firebird.patch
|
||||||
|
|
||||||
## upstream patches
|
## upstream patches
|
||||||
# 5.8 branch
|
## 5.8 branch
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1403500
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1403500
|
||||||
# https://bugreports.qt.io/browse/QTBUG-55583
|
# https://bugreports.qt.io/browse/QTBUG-55583
|
||||||
Patch100: qt5-qtbase-5.8-QTBUG-55583.patch
|
Patch100: qt5-qtbase-5.8-QTBUG-55583.patch
|
||||||
|
# Ensure a pixel density of at least 1 for Qt::AA_EnableHighDpiScaling
|
||||||
|
# https://bugreports.qt.io/browse/QTBUG-56140
|
||||||
|
Patch101: qt5-qtbase-5.8-QTBUG-56140.patch
|
||||||
|
|
||||||
# Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires.
|
# Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires.
|
||||||
# Those themes are there for platform integration. If the required libraries are
|
# Those themes are there for platform integration. If the required libraries are
|
||||||
|
@ -366,6 +369,7 @@ Qt5 libraries used for drawing widgets and OpenGL items.
|
||||||
|
|
||||||
%patch4 -p1 -b .QTBUG-35459
|
%patch4 -p1 -b .QTBUG-35459
|
||||||
%patch100 -p1 -b .QTBUG-55583
|
%patch100 -p1 -b .QTBUG-55583
|
||||||
|
%patch101 -p1 -b .QTBUG-56140
|
||||||
|
|
||||||
%patch50 -p1 -b .QT_VERSION_CHECK
|
%patch50 -p1 -b .QT_VERSION_CHECK
|
||||||
%patch51 -p1 -b .hidpi_scale_at_192
|
%patch51 -p1 -b .hidpi_scale_at_192
|
||||||
|
@ -978,6 +982,9 @@ fi
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 09 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.7.1-14
|
||||||
|
- 5.8 backport: Ensure a pixel density of at least 1 for Qt::AA_EnableHighDpiScaling (QTBUG-56140)
|
||||||
|
|
||||||
* Tue Jan 24 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.7.1-13
|
* Tue Jan 24 2017 Rex Dieter <rdieter@fedoraproject.org> - 5.7.1-13
|
||||||
- Broken window scaling (#1381828)
|
- Broken window scaling (#1381828)
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
--- qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp.orig 2017-01-11 11:42:59.544860428 +0100
|
diff -up qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp.hidpi_scale_at_192 qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp
|
||||||
+++ qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp 2017-01-11 11:43:51.142956762 +0100
|
--- qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp.hidpi_scale_at_192 2017-02-09 07:47:26.060096259 -0600
|
||||||
|
+++ qtbase-opensource-src-5.7.1/src/plugins/platforms/xcb/qxcbscreen.cpp 2017-02-09 07:48:11.497567447 -0600
|
||||||
@@ -633,7 +633,7 @@ void QXcbScreen::updateGeometry(const QR
|
@@ -633,7 +633,7 @@ void QXcbScreen::updateGeometry(const QR
|
||||||
m_sizeMillimeters = sizeInMillimeters(xGeometry.size(), virtualDpi());
|
m_sizeMillimeters = sizeInMillimeters(xGeometry.size(), virtualDpi());
|
||||||
|
|
||||||
qreal dpi = xGeometry.width() / physicalSize().width() * qreal(25.4);
|
qreal dpi = xGeometry.width() / physicalSize().width() * qreal(25.4);
|
||||||
- m_pixelDensity = qRound(dpi/96);
|
- m_pixelDensity = qMax(1, qRound(dpi/96));
|
||||||
+ m_pixelDensity = (int) (dpi/96); // instead of rounding at 1.5, round at 2.0 (same as GNOME)
|
+ m_pixelDensity = qMax(1, (int) (dpi/96)); // instead of rounding at 1.5, round at 2.0 (same as GNOME)
|
||||||
m_geometry = QRect(xGeometry.topLeft(), xGeometry.size());
|
m_geometry = QRect(xGeometry.topLeft(), xGeometry.size());
|
||||||
m_availableGeometry = xGeometry & m_virtualDesktop->workArea();
|
m_availableGeometry = xGeometry & m_virtualDesktop->workArea();
|
||||||
QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry);
|
QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry);
|
||||||
|
|
Loading…
Reference in New Issue