Upstream fix: Emit QScreen::geometryChanged when the logical DPI changes
This commit is contained in:
parent
7cbf037b48
commit
9d109333a3
@ -49,7 +49,7 @@ BuildRequires: pkgconfig(libsystemd)
|
|||||||
Name: qt5-qtbase
|
Name: qt5-qtbase
|
||||||
Summary: Qt5 - QtBase components
|
Summary: Qt5 - QtBase components
|
||||||
Version: 5.15.1
|
Version: 5.15.1
|
||||||
Release: 4%{?dist}
|
Release: 5%{?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
|
||||||
@ -124,6 +124,7 @@ Patch80: qtbase-use-wayland-on-gnome.patch
|
|||||||
# glibc stat
|
# glibc stat
|
||||||
|
|
||||||
## upstream patches
|
## upstream patches
|
||||||
|
Patch100: qtbase-emit-qscreen-geometry-changed-when-logical-dpi-changes.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
|
||||||
@ -382,6 +383,7 @@ Qt5 libraries used for drawing widgets and OpenGL items.
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
## upstream patches
|
## upstream patches
|
||||||
|
%patch100 -p1 -b .emit-qscreen-geometry-changed-when-logical-dpi-changes
|
||||||
|
|
||||||
# move some bundled libs to ensure they're not accidentally used
|
# move some bundled libs to ensure they're not accidentally used
|
||||||
pushd src/3rdparty
|
pushd src/3rdparty
|
||||||
@ -1039,6 +1041,9 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 30 2020 Jan Grulich <jgrulich@redhat.com> - 5.15.1-5
|
||||||
|
- Upstream fix: Emit QScreen::geometryChanged when the logical DPI changes
|
||||||
|
|
||||||
* Tue Sep 29 2020 Yaroslav Fedevych <yaroslav@fedevych.name> - 5.15.1-4
|
* Tue Sep 29 2020 Yaroslav Fedevych <yaroslav@fedevych.name> - 5.15.1-4
|
||||||
- qt5-qtbase-devel requires vulkan headers
|
- qt5-qtbase-devel requires vulkan headers
|
||||||
|
|
||||||
|
@ -0,0 +1,56 @@
|
|||||||
|
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
|
||||||
|
index d294cc38..dd31e31c 100644
|
||||||
|
--- a/src/gui/kernel/qguiapplication.cpp
|
||||||
|
+++ b/src/gui/kernel/qguiapplication.cpp
|
||||||
|
@@ -3155,13 +3155,14 @@ void QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfaceP
|
||||||
|
bool availableGeometryChanged = e->availableGeometry != s->d_func()->availableGeometry;
|
||||||
|
s->d_func()->availableGeometry = e->availableGeometry;
|
||||||
|
|
||||||
|
- if (geometryChanged) {
|
||||||
|
- Qt::ScreenOrientation primaryOrientation = s->primaryOrientation();
|
||||||
|
+ const Qt::ScreenOrientation primaryOrientation = s->primaryOrientation();
|
||||||
|
+ if (geometryChanged)
|
||||||
|
s->d_func()->updatePrimaryOrientation();
|
||||||
|
|
||||||
|
- emit s->geometryChanged(s->geometry());
|
||||||
|
+ s->d_func()->emitGeometryChangeSignals(geometryChanged, availableGeometryChanged);
|
||||||
|
+
|
||||||
|
+ if (geometryChanged) {
|
||||||
|
emit s->physicalSizeChanged(s->physicalSize());
|
||||||
|
- emit s->physicalDotsPerInchChanged(s->physicalDotsPerInch());
|
||||||
|
emit s->logicalDotsPerInchChanged(s->logicalDotsPerInch());
|
||||||
|
|
||||||
|
if (s->primaryOrientation() != primaryOrientation)
|
||||||
|
@@ -3171,8 +3172,6 @@ void QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfaceP
|
||||||
|
updateFilteredScreenOrientation(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
- s->d_func()->emitGeometryChangeSignals(geometryChanged, availableGeometryChanged);
|
||||||
|
-
|
||||||
|
resetCachedDevicePixelRatio();
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp
|
||||||
|
index df628fcc..a1afc1ba 100644
|
||||||
|
--- a/src/gui/kernel/qscreen.cpp
|
||||||
|
+++ b/src/gui/kernel/qscreen.cpp
|
||||||
|
@@ -88,6 +88,9 @@ void QScreenPrivate::updateGeometriesWithSignals()
|
||||||
|
void QScreenPrivate::emitGeometryChangeSignals(bool geometryChanged, bool availableGeometryChanged)
|
||||||
|
{
|
||||||
|
Q_Q(QScreen);
|
||||||
|
+ if (geometryChanged)
|
||||||
|
+ emit q->geometryChanged(geometry);
|
||||||
|
+
|
||||||
|
if (availableGeometryChanged)
|
||||||
|
emit q->availableGeometryChanged(availableGeometry);
|
||||||
|
|
||||||
|
@@ -96,6 +99,9 @@ void QScreenPrivate::emitGeometryChangeSignals(bool geometryChanged, bool availa
|
||||||
|
for (QScreen* sibling : siblings)
|
||||||
|
emit sibling->virtualGeometryChanged(sibling->virtualGeometry());
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (geometryChanged)
|
||||||
|
+ emit q->physicalDotsPerInchChanged(q->physicalDotsPerInch());
|
||||||
|
}
|
||||||
|
|
||||||
|
void QScreenPrivate::setPlatformScreen(QPlatformScreen *screen)
|
Loading…
Reference in New Issue
Block a user