summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2024-11-23 00:09:28 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2024-11-23 00:12:00 +0100
commitc5b3d781b1ae2869a602906d0df470616d9d39d5 (patch)
tree2035d88269aea50fe1751fcc53ecb0493d759688 /kde-frameworks/qqc2-desktop-style
parentmedia-video/kaffeine: add 2.0.19 (diff)
downloadgentoo-c5b3d781b1ae2869a602906d0df470616d9d39d5.tar.gz
gentoo-c5b3d781b1ae2869a602906d0df470616d9d39d5.tar.bz2
gentoo-c5b3d781b1ae2869a602906d0df470616d9d39d5.zip
kde-frameworks/qqc2-desktop-style: Qt text rendering w highDPI scaling
Upstream commit e82957f5e6fc72e446239e2ee5139b93d3ceac85 See also: https://invent.kde.org/frameworks/qqc2-desktop-style/-/merge_requests/429 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=479891 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-frameworks/qqc2-desktop-style')
-rw-r--r--kde-frameworks/qqc2-desktop-style/files/qqc2-desktop-style-6.7.0-use-qt-textrendering-w-highdpi.patch53
-rw-r--r--kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-6.7.0-r1.ebuild40
-rw-r--r--kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-6.8.0-r1.ebuild40
3 files changed, 133 insertions, 0 deletions
diff --git a/kde-frameworks/qqc2-desktop-style/files/qqc2-desktop-style-6.7.0-use-qt-textrendering-w-highdpi.patch b/kde-frameworks/qqc2-desktop-style/files/qqc2-desktop-style-6.7.0-use-qt-textrendering-w-highdpi.patch
new file mode 100644
index 000000000000..251e9d3728f6
--- /dev/null
+++ b/kde-frameworks/qqc2-desktop-style/files/qqc2-desktop-style-6.7.0-use-qt-textrendering-w-highdpi.patch
@@ -0,0 +1,53 @@
+From e82957f5e6fc72e446239e2ee5139b93d3ceac85 Mon Sep 17 00:00:00 2001
+From: David Edmundson <kde@davidedmundson.co.uk>
+Date: Fri, 22 Nov 2024 21:57:01 +0000
+Subject: [PATCH] Use Qt text rendering when high DPI scaling
+
+It is known that native rendering performs badly with scaling and an
+existing workaround is in place.
+
+The current check does not work on Wayland that has per-window rather
+than per-screen scaling. Given Qt changes hinting preferences when any
+scaling is used anyway, we may as well commit to using the non-native
+rendering throughout.
+
+For QtQuick the Qt renderer is more performant, handles transformations
+better and avoids this issue. Given the results look basically
+identical, we can simplify the existing code.
+
+BUG: 479891
+---
+ .../plasmadesktoptheme.cpp | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp b/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
+index 51a3241f..fac0831f 100644
+--- a/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
++++ b/kirigami-plasmadesktop-integration/plasmadesktoptheme.cpp
+@@ -50,14 +50,15 @@ public:
+ connect(qGuiApp, &QGuiApplication::fontDatabaseChanged, this, &StyleSingleton::notifyWatchersConfigurationChange);
+ qGuiApp->installEventFilter(this);
+
+- // Use NativeTextRendering as the default text rendering type when the scale factor is an integer.
+- // NativeTextRendering is still distorted sometimes with fractional scale factors,
+- // despite https://bugreports.qt.io/browse/QTBUG-67007 being closed.
+- qreal devicePixelRatio = qGuiApp->devicePixelRatio();
+- QQuickWindow::TextRenderType defaultTextRenderType =
+- int(devicePixelRatio) == devicePixelRatio ? QQuickWindow::NativeTextRendering : QQuickWindow::QtTextRendering;
+- QQuickWindow::setTextRenderType(defaultTextRenderType);
+-
++ // NativeTextRendering is still distorted sometimes with fractional scale factors
++ // Given Qt disables all hinting with native rendering when any scaling is used anyway
++ // we can use Qt's rendering throughout
++ // QTBUG-126577
++ if (qApp->devicePixelRatio() == 1.0) {
++ QQuickWindow::setTextRenderType(QQuickWindow::NativeTextRendering);
++ } else {
++ QQuickWindow::setTextRenderType(QQuickWindow::QtTextRendering);
++ }
+ smallFont = loadSmallFont();
+ }
+
+--
+GitLab
+
diff --git a/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-6.7.0-r1.ebuild b/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-6.7.0-r1.ebuild
new file mode 100644
index 000000000000..66285380137c
--- /dev/null
+++ b/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-6.7.0-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_QTHELP="false"
+PVCUT=$(ver_cut 1-2)
+QTMIN=6.6.2
+inherit ecm frameworks.kde.org
+
+DESCRIPTION="Style for QtQuickControls 2 that uses QWidget's QStyle for painting"
+
+LICENSE="|| ( GPL-2+ LGPL-3+ )"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE=""
+
+# Qt_6_PRIVATE_API matches org.kde.desktop.so, see also:
+# https://invent.kde.org/frameworks/qqc2-desktop-style/-/merge_requests/379
+DEPEND="
+ >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,widgets]
+ >=dev-qt/qtdeclarative-${QTMIN}:6=
+ =kde-frameworks/kcolorscheme-${PVCUT}*:6
+ =kde-frameworks/kconfig-${PVCUT}*:6
+ =kde-frameworks/kiconthemes-${PVCUT}*:6
+ =kde-frameworks/kirigami-${PVCUT}*:6
+ =kde-frameworks/sonnet-${PVCUT}*:6[qml]
+"
+RDEPEND="${DEPEND}
+ >=dev-qt/qt5compat-${QTMIN}:6
+"
+BDEPEND=">=dev-qt/qttools-${QTMIN}:6[linguist]"
+
+PATCHES=(
+ "${FILESDIR}/${P}-use-qt-textrendering-w-highdpi.patch" # KDE-bug #479891
+)
+
+CMAKE_SKIP_TESTS=(
+ # bug 926509
+ animationspeedmodifiertest
+)
diff --git a/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-6.8.0-r1.ebuild b/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-6.8.0-r1.ebuild
new file mode 100644
index 000000000000..f63d2fa1dfd0
--- /dev/null
+++ b/kde-frameworks/qqc2-desktop-style/qqc2-desktop-style-6.8.0-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_QTHELP="false"
+PVCUT=$(ver_cut 1-2)
+QTMIN=6.7.2
+inherit ecm frameworks.kde.org
+
+DESCRIPTION="Style for QtQuickControls 2 that uses QWidget's QStyle for painting"
+
+LICENSE="|| ( GPL-2+ LGPL-3+ )"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE=""
+
+# Qt_6_PRIVATE_API matches org.kde.desktop.so, see also:
+# https://invent.kde.org/frameworks/qqc2-desktop-style/-/merge_requests/379
+DEPEND="
+ >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,widgets]
+ >=dev-qt/qtdeclarative-${QTMIN}:6=
+ =kde-frameworks/kcolorscheme-${PVCUT}*:6
+ =kde-frameworks/kconfig-${PVCUT}*:6
+ =kde-frameworks/kiconthemes-${PVCUT}*:6
+ =kde-frameworks/kirigami-${PVCUT}*:6
+ =kde-frameworks/sonnet-${PVCUT}*:6[qml]
+"
+RDEPEND="${DEPEND}
+ >=dev-qt/qt5compat-${QTMIN}:6
+"
+BDEPEND=">=dev-qt/qttools-${QTMIN}:6[linguist]"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-6.7.0-use-qt-textrendering-w-highdpi.patch" # KDE-bug #479891
+)
+
+CMAKE_SKIP_TESTS=(
+ # bug 926509
+ animationspeedmodifiertest
+)