summaryrefslogtreecommitdiff
path: root/dev-qt/qtwebengine
diff options
context:
space:
mode:
Diffstat (limited to 'dev-qt/qtwebengine')
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-6.7.2-QTBUG-113574.patch41
-rw-r--r--dev-qt/qtwebengine/qtwebengine-6.7.2.ebuild1
-rw-r--r--dev-qt/qtwebengine/qtwebengine-6.7.9999.ebuild1
3 files changed, 43 insertions, 0 deletions
diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.7.2-QTBUG-113574.patch b/dev-qt/qtwebengine/files/qtwebengine-6.7.2-QTBUG-113574.patch
new file mode 100644
index 000000000000..d8a9158c8a01
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-6.7.2-QTBUG-113574.patch
@@ -0,0 +1,41 @@
+Backport of [1] from 6.8/6.9 for [2].
+
+[1] https://codereview.qt-project.org/c/qt/qtwebengine/+/569910
+[2] https://bugreports.qt.io/browse/QTBUG-113574
+
+From 21a9add47def34322b799683e1e1daff88dc4a06 Mon Sep 17 00:00:00 2001
+From: David Edmundson <davidedmundson@kde.org>
+Date: Wed, 19 Jun 2024 10:37:45 +0100
+Subject: [PATCH] Use device pixel ratio of the window rather than the screen
+
+Window device pixel ratio can differ from the screen depending on the
+platform. The window is the more authorative source with new events in
+Qt to support that.
+
+In Chromium the rendering is still based off a screen factor, but each
+view will have a completely independent set of screen variables, so we
+can adjust the screen to match our current view.
+
+Chromium itself also alters the screen scale factor on a per window
+basis for their own native Wayland backend or if recording a window.
+--- a/src/core/render_widget_host_view_qt.cpp
++++ b/src/core/render_widget_host_view_qt.cpp
+@@ -875,4 +875,9 @@
+
+ display::ScreenInfos newScreenInfos = screenInfosFromQtForUpdate(window->screen());
++
++ // We always want to use the scale from our current window
++ // This screen information is stored on a per-view basis
++ auto &screen = newScreenInfos.mutable_current();
++ screen.device_scale_factor = window->devicePixelRatio();
+ if (screen_infos_ == newScreenInfos)
+ return false;
+--- a/src/core/render_widget_host_view_qt_delegate_item.cpp
++++ b/src/core/render_widget_host_view_qt_delegate_item.cpp
+@@ -346,4 +346,6 @@
+ onHide();
+ }
++ } else if (change == QQuickItem::ItemDevicePixelRatioHasChanged) {
++ m_client->visualPropertiesChanged();
+ }
+ }
diff --git a/dev-qt/qtwebengine/qtwebengine-6.7.2.ebuild b/dev-qt/qtwebengine/qtwebengine-6.7.2.ebuild
index 3726d7743a00..1ad6561ecc65 100644
--- a/dev-qt/qtwebengine/qtwebengine-6.7.2.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-6.7.2.ebuild
@@ -110,6 +110,7 @@ PATCHES=( "${WORKDIR}"/patches/${PN} )
PATCHES+=(
# add extras as needed here, may merge in set if carries across versions
+ "${FILESDIR}"/${PN}-6.7.2-QTBUG-113574.patch
)
python_check_deps() {
diff --git a/dev-qt/qtwebengine/qtwebengine-6.7.9999.ebuild b/dev-qt/qtwebengine/qtwebengine-6.7.9999.ebuild
index 3726d7743a00..1ad6561ecc65 100644
--- a/dev-qt/qtwebengine/qtwebengine-6.7.9999.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-6.7.9999.ebuild
@@ -110,6 +110,7 @@ PATCHES=( "${WORKDIR}"/patches/${PN} )
PATCHES+=(
# add extras as needed here, may merge in set if carries across versions
+ "${FILESDIR}"/${PN}-6.7.2-QTBUG-113574.patch
)
python_check_deps() {