commit:     6c5daefbbead45abe91e711ee4872668289cc2f4
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri May 30 21:33:14 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Jun  2 16:48:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c5daefb

kde-plasma/kscreen: kcm: reload kwin config

... on tearing option change

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../files/kscreen-6.3.5-kcm-reload-kwin-cfg.patch  | 63 ++++++++++++++++++++++
 kde-plasma/kscreen/kscreen-6.3.5-r1.ebuild         | 58 ++++++++++++++++++++
 2 files changed, 121 insertions(+)

diff --git a/kde-plasma/kscreen/files/kscreen-6.3.5-kcm-reload-kwin-cfg.patch 
b/kde-plasma/kscreen/files/kscreen-6.3.5-kcm-reload-kwin-cfg.patch
new file mode 100644
index 000000000000..e58bae01e17b
--- /dev/null
+++ b/kde-plasma/kscreen/files/kscreen-6.3.5-kcm-reload-kwin-cfg.patch
@@ -0,0 +1,63 @@
+From 755b84e51b71c33e0099cc42d3df12c05b6beb03 Mon Sep 17 00:00:00 2001
+From: Xaver Hugl <[email protected]>
+Date: Fri, 23 May 2025 16:55:04 +0200
+Subject: [PATCH] kcm: reload kwin config when tearing option is changed
+
+Ideally, we'd integrate it into the normal output configuration protocol, but 
for
+backporting that's not a usable approach
+
+BUG: 504634
+BUG: 496970
+
+
+(cherry picked from commit ca3a700f167232408666e68f648c8eb028cad7d5)
+
+Co-authored-by: Xaver Hugl <[email protected]>
+---
+ kcm/kcm.cpp | 10 ++++++++++
+ kcm/kcm.h   |  1 +
+ 2 files changed, 11 insertions(+)
+
+diff --git a/kcm/kcm.cpp b/kcm/kcm.cpp
+index cc9d1cf89..a0a0f4b68 100644
+--- a/kcm/kcm.cpp
++++ b/kcm/kcm.cpp
+@@ -226,6 +226,12 @@ void KCMKScreen::doSave()
+         // enough time to change configuration.
+         QTimer::singleShot(1000, this, updateInitialData);
+     }
++
++    if (m_needsKwinConfigReload) {
++        m_needsKwinConfigReload = false;
++        QDBusMessage message = QDBusMessage::createSignal("/KWin", 
"org.kde.KWin", "reloadConfig");
++        QDBusConnection::sessionBus().send(message);
++    }
+ }
+ 
+ bool KCMKScreen::backendReady() const
+@@ -523,6 +529,10 @@ bool KCMKScreen::xwaylandClientsScaleSupported() const
+ 
+ void KCMKScreen::setAllowTearing(bool allow)
+ {
++    if (KWinCompositingSetting::self()->allowTearing() == allow) {
++        return;
++    }
++    m_needsKwinConfigReload = true;
+     KWinCompositingSetting::self()->setAllowTearing(allow);
+     Q_EMIT changed();
+ }
+diff --git a/kcm/kcm.h b/kcm/kcm.h
+index c0046bb17..a124ca51e 100644
+--- a/kcm/kcm.h
++++ b/kcm/kcm.h
+@@ -135,6 +135,7 @@ private:
+     bool m_settingsReverted = false;
+     bool m_stopUpdatesFromBackend = false;
+     bool m_configNeedsSave = false;
++    bool m_needsKwinConfigReload = false;
+ 
+     QSortFilterProxyModel *m_outputProxyModel;
+ 
+-- 
+GitLab
+

diff --git a/kde-plasma/kscreen/kscreen-6.3.5-r1.ebuild 
b/kde-plasma/kscreen/kscreen-6.3.5-r1.ebuild
new file mode 100644
index 000000000000..477634f07aad
--- /dev/null
+++ b/kde-plasma/kscreen/kscreen-6.3.5-r1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_TEST="forceoptional"
+KFMIN=6.10.0
+QTMIN=6.8.1
+inherit ecm plasma.kde.org xdg
+
+DESCRIPTION="KDE Plasma screen management"
+HOMEPAGE="https://invent.kde.org/plasma/kscreen";
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="6"
+KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+IUSE="X"
+
+# bug #580440, last checked 5.6.3
+RESTRICT="test"
+
+# qtbase slot op: GuiPrivate use in kded daemon
+DEPEND="
+       >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,widgets]
+       >=dev-qt/qtdeclarative-${QTMIN}:6[widgets]
+       >=dev-qt/qtsensors-${QTMIN}:6
+       >=kde-frameworks/kcmutils-${KFMIN}:6
+       >=kde-frameworks/kconfig-${KFMIN}:6
+       >=kde-frameworks/kcoreaddons-${KFMIN}:6
+       >=kde-frameworks/kdbusaddons-${KFMIN}:6
+       >=kde-frameworks/kglobalaccel-${KFMIN}:6
+       >=kde-frameworks/ki18n-${KFMIN}:6
+       >=kde-frameworks/ksvg-${KFMIN}:6
+       >=kde-frameworks/kwindowsystem-${KFMIN}:6
+       >=kde-frameworks/kxmlgui-${KFMIN}:6
+       >=kde-plasma/layer-shell-qt-${KDE_CATV}:6
+       >=kde-plasma/libkscreen-${KDE_CATV}:6=
+       >=kde-plasma/libplasma-${KDE_CATV}:6
+       X? (
+               >=dev-qt/qtbase-${QTMIN}:6=[X]
+               x11-libs/libX11
+               x11-libs/libxcb:=
+               x11-libs/libXi
+       )
+"
+RDEPEND="${DEPEND}
+       >=dev-qt/qt5compat-${QTMIN}:6[qml]
+"
+BDEPEND=">=kde-frameworks/kcmutils-${KFMIN}:6"
+
+PATCHES=( "${FILESDIR}/${P}-kcm-reload-kwin-cfg.patch" ) # KDE-bug 504634
+
+src_configure() {
+       local mycmakeargs=(
+               -DWITH_X11=$(usex X)
+       )
+       ecm_src_configure
+}

Reply via email to