summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2021-12-10 15:37:01 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2021-12-10 15:58:21 +0100
commit75a7e9b75c3eb446457b36b06a88ebb8485ea54e (patch)
treef762f692a7eaff0374b6bc529013c358b497994f /kde-plasma/plasma-desktop
parentkde-plasma/plasma-workspace: Drop 5.23.4 (r0) (diff)
downloadgentoo-75a7e9b75c3eb446457b36b06a88ebb8485ea54e.tar.gz
gentoo-75a7e9b75c3eb446457b36b06a88ebb8485ea54e.tar.bz2
gentoo-75a7e9b75c3eb446457b36b06a88ebb8485ea54e.zip
kde-plasma/plasma-desktop: Fix touchpad applet, initial panel sizing
Upstream commit 9f19af95e9699420b057b6ff7e99968faf8948a3 See also: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/715 Upstream commits: 2131daa05195a2b55f593acf3d323cf4c2a89936 aadab772fb81ff3d97c8b5342a8a018f51b2ef60 KDE-bug: https://bugs.kde.org/show_bug.cgi?id=445982 Package-Manager: Portage-3.0.29, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-plasma/plasma-desktop')
-rw-r--r--kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-panel-initial-sizing.patch126
-rw-r--r--kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-applet-popup-close-on-click.patch53
-rw-r--r--kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-mousearea-lookup.patch35
-rw-r--r--kde-plasma/plasma-desktop/plasma-desktop-5.23.4-r1.ebuild190
4 files changed, 404 insertions, 0 deletions
diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-panel-initial-sizing.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-panel-initial-sizing.patch
new file mode 100644
index 000000000000..d77187409738
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-panel-initial-sizing.patch
@@ -0,0 +1,126 @@
+From 9f19af95e9699420b057b6ff7e99968faf8948a3 Mon Sep 17 00:00:00 2001
+From: David Edmundson <kde@davidedmundson.co.uk>
+Date: Fri, 3 Dec 2021 16:34:40 +0000
+Subject: [PATCH] containments/panel: Fix initial sizing
+
+Timers for anything that affect layouts are universally wrong.
+
+Ultimately this breaks layouts internal usage of QQmlParserStatus. For
+runtime changes layout internally most relayouting is buffered
+internally till the polish event which is once per frame.
+
+Removing this makes startup faster, less glitchy and more declarative.
+
+
+(cherry picked from commit b2fd1578a0063938a3eda8d8e41f14394b7635f7)
+---
+ containments/panel/contents/ui/main.qml | 34 ++++++-------------------
+ 1 file changed, 8 insertions(+), 26 deletions(-)
+
+diff --git a/containments/panel/contents/ui/main.qml b/containments/panel/contents/ui/main.qml
+index 0a5477476..9b5656acf 100644
+--- a/containments/panel/contents/ui/main.qml
++++ b/containments/panel/contents/ui/main.qml
+@@ -154,14 +154,12 @@ function checkLastSpacer() {
+
+ //BEGIN connections
+ Component.onCompleted: {
+- currentLayout.isLayoutHorizontal = isHorizontal
+ LayoutManager.plasmoid = plasmoid;
+ LayoutManager.root = root;
+ LayoutManager.layout = currentLayout;
+ LayoutManager.lastSpacer = lastSpacer;
+ LayoutManager.marginHighlights = [];
+ LayoutManager.restore();
+- containmentSizeSyncTimer.restart();
+
+ plasmoid.action("configure").visible = Qt.binding(function() {
+ return !plasmoid.immutable;
+@@ -200,7 +198,6 @@ function checkLastSpacer() {
+ event.accept(event.proposedAction);
+ root.fixedWidth = 0;
+ root.fixedHeight = 0;
+- containmentSizeSyncTimer.restart();
+ }
+
+
+@@ -215,8 +212,6 @@ function checkLastSpacer() {
+ }
+
+ Plasmoid.onUserConfiguringChanged: {
+- containmentSizeSyncTimer.restart();
+-
+ if (plasmoid.immutable) {
+ if (dragOverlay) {
+ dragOverlay.destroy();
+@@ -245,11 +240,7 @@ function checkLastSpacer() {
+ }
+ }
+
+- Plasmoid.onFormFactorChanged: containmentSizeSyncTimer.restart();
+- Containment.onEditModeChanged: containmentSizeSyncTimer.restart();
+-
+ onToolBoxChanged: {
+- containmentSizeSyncTimer.restart();
+ if (startupTimer.running) {
+ startupTimer.restart();
+ }
+@@ -478,10 +469,16 @@ function checkLastSpacer() {
+
+ GridLayout {
+ id: currentLayout
+- property bool isLayoutHorizontal
++ readonly property bool isLayoutHorizontal: root.isHorizontal
+ rowSpacing: PlasmaCore.Units.smallSpacing
+ columnSpacing: PlasmaCore.Units.smallSpacing
+
++ x: (isLayoutHorizontal && root.toolBox && Qt.application.layoutDirection === Qt.RightToLeft && plasmoid.editMode) ? root.toolBox.width : 0;
++ y: 0
++
++ width: root.width - (isLayoutHorizontal && root.toolBox && plasmoid.editMode ? root.toolBox.width : 0)
++ height: root.height - (!isLayoutHorizontal && root.toolBox && plasmoid.editMode ? root.toolBox.height : 0)
++
+ Layout.preferredWidth: {
+ var width = 0;
+ for (var i = 0, length = currentLayout.children.length; i < length; ++i) {
+@@ -505,36 +502,21 @@ function checkLastSpacer() {
+ rows: 1
+ columns: 1
+ //when horizontal layout top-to-bottom, this way it will obey our limit of one row and actually lay out left to right
+- flow: isHorizontal ? GridLayout.TopToBottom : GridLayout.LeftToRight
++ flow: isLayoutHorizontal ? GridLayout.TopToBottom : GridLayout.LeftToRight
+ layoutDirection: Qt.application.layoutDirection
+ }
+
+ onWidthChanged: {
+- containmentSizeSyncTimer.restart()
+ if (startupTimer.running) {
+ startupTimer.restart();
+ }
+ }
+ onHeightChanged: {
+- containmentSizeSyncTimer.restart()
+ if (startupTimer.running) {
+ startupTimer.restart();
+ }
+ }
+
+- Timer {
+- id: containmentSizeSyncTimer
+- interval: 150
+- onTriggered: {
+- dndSpacer.parent = root;
+- currentLayout.x = (isHorizontal && toolBox && Qt.application.layoutDirection === Qt.RightToLeft && plasmoid.editMode) ? toolBox.width : 0;
+- currentLayout.y = 0
+- currentLayout.width = root.width - (isHorizontal && toolBox && plasmoid.editMode ? toolBox.width : 0)
+- currentLayout.height = root.height - (!isHorizontal && toolBox && plasmoid.editMode ? toolBox.height : 0)
+- currentLayout.isLayoutHorizontal = isHorizontal
+- }
+- }
+-
+ //FIXME: I don't see other ways at the moment a way to see when the UI is REALLY ready
+ Timer {
+ id: startupTimer
+--
+GitLab
+
diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-applet-popup-close-on-click.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-applet-popup-close-on-click.patch
new file mode 100644
index 000000000000..1c9a2b79e31e
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-applet-popup-close-on-click.patch
@@ -0,0 +1,53 @@
+From 2131daa05195a2b55f593acf3d323cf4c2a89936 Mon Sep 17 00:00:00 2001
+From: Nate Graham <nate@kde.org>
+Date: Thu, 2 Dec 2021 20:13:46 -0700
+Subject: [PATCH] kcms/touchpad/applet: Make the popup close on click
+
+BUG: 445982
+FIXED-IN: 5.23.5
+(cherry picked from commit 4cb2de984ab79bc257af0135bf92ea7390d5617f)
+---
+ .../applet/qml/contents/ui/touchpad.qml | 23 +++++++++++--------
+ 1 file changed, 13 insertions(+), 10 deletions(-)
+
+diff --git a/kcms/touchpad/applet/qml/contents/ui/touchpad.qml b/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
+index 3f5eb722f..106859c3a 100644
+--- a/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
++++ b/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
+@@ -56,20 +56,23 @@ Item {
+ connectedSources: dataSource.sources
+ }
+
+- Plasmoid.compactRepresentation: PlasmaCore.ToolTipArea {
+- id: toolTip
++ Plasmoid.compactRepresentation: PlasmaCore.IconItem {
++ implicitWidth: PlasmaCore.Units.iconSizes.small
++ implicitHeight: PlasmaCore.Units.iconSizes.small
+
+- Layout.minimumWidth: PlasmaCore.Units.iconSizes.small
+- Layout.minimumHeight: Layout.minimumWidth
++ source: plasmoid.icon
++ active: parent.containsMouse
+
+- mainText: plasmoid.title
+- subText: plasmoid.toolTipSubText
++ PlasmaCore.ToolTipArea {
++ mainText: plasmoid.title
++ subText: plasmoid.toolTipSubText
++ }
+
+- PlasmaCore.IconItem {
++ MouseArea {
+ anchors.fill: parent
+- source: plasmoid.icon
+- active: parent.containsMouse
+- enabled: root.hasTouchpad
++ onClicked: {
++ plasmoid.expanded = !plasmoid.expanded;
++ }
+ }
+ }
+
+--
+GitLab
+
diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-mousearea-lookup.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-mousearea-lookup.patch
new file mode 100644
index 000000000000..07d741424005
--- /dev/null
+++ b/kde-plasma/plasma-desktop/files/plasma-desktop-5.23.4-fix-touchpad-mousearea-lookup.patch
@@ -0,0 +1,35 @@
+From aadab772fb81ff3d97c8b5342a8a018f51b2ef60 Mon Sep 17 00:00:00 2001
+From: Nate Graham <nate@kde.org>
+Date: Fri, 3 Dec 2021 09:36:47 -0700
+Subject: [PATCH] kcms/touchpad/applet: Fix mousearea lookup
+
+(cherry picked from commit f4060c48b264a5054c2ffa795c208910d42bfd42)
+---
+ kcms/touchpad/applet/qml/contents/ui/touchpad.qml | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/kcms/touchpad/applet/qml/contents/ui/touchpad.qml b/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
+index 106859c3a..aa1034e59 100644
+--- a/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
++++ b/kcms/touchpad/applet/qml/contents/ui/touchpad.qml
+@@ -61,7 +61,7 @@ Item {
+ implicitHeight: PlasmaCore.Units.iconSizes.small
+
+ source: plasmoid.icon
+- active: parent.containsMouse
++ active: mousearea.containsMouse
+
+ PlasmaCore.ToolTipArea {
+ mainText: plasmoid.title
+@@ -69,6 +69,8 @@ Item {
+ }
+
+ MouseArea {
++ id: mousearea
++
+ anchors.fill: parent
+ onClicked: {
+ plasmoid.expanded = !plasmoid.expanded;
+--
+GitLab
+
diff --git a/kde-plasma/plasma-desktop/plasma-desktop-5.23.4-r1.ebuild b/kde-plasma/plasma-desktop/plasma-desktop-5.23.4-r1.ebuild
new file mode 100644
index 000000000000..a19fe33aac17
--- /dev/null
+++ b/kde-plasma/plasma-desktop/plasma-desktop-5.23.4-r1.ebuild
@@ -0,0 +1,190 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+KFMIN=5.86.0
+PVCUT=$(ver_cut 1-3)
+QTMIN=5.15.2
+VIRTUALX_REQUIRED="test"
+inherit ecm kde.org optfeature
+
+DESCRIPTION="KDE Plasma desktop"
+XORGHDRS="${PN}-override-include-dirs-1"
+SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${XORGHDRS}.tar.xz"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="emoji ibus +kaccounts +policykit scim +semantic-desktop telemetry"
+
+COMMON_DEPEND="
+ >=dev-qt/qtconcurrent-${QTMIN}:5
+ >=dev-qt/qtdbus-${QTMIN}:5
+ >=dev-qt/qtdeclarative-${QTMIN}:5
+ >=dev-qt/qtgui-${QTMIN}:5
+ >=dev-qt/qtnetwork-${QTMIN}:5
+ >=dev-qt/qtprintsupport-${QTMIN}:5
+ >=dev-qt/qtsql-${QTMIN}:5
+ >=dev-qt/qtsvg-${QTMIN}:5
+ >=dev-qt/qtwidgets-${QTMIN}:5
+ >=dev-qt/qtx11extras-${QTMIN}:5
+ >=dev-qt/qtxml-${QTMIN}:5
+ >=kde-frameworks/attica-${KFMIN}:5
+ >=kde-frameworks/kactivities-${KFMIN}:5
+ >=kde-frameworks/kactivities-stats-${KFMIN}:5
+ >=kde-frameworks/karchive-${KFMIN}:5
+ >=kde-frameworks/kauth-${KFMIN}:5
+ >=kde-frameworks/kbookmarks-${KFMIN}:5
+ >=kde-frameworks/kcmutils-${KFMIN}:5
+ >=kde-frameworks/kcodecs-${KFMIN}:5
+ >=kde-frameworks/kcompletion-${KFMIN}:5
+ >=kde-frameworks/kconfig-${KFMIN}:5
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:5
+ >=kde-frameworks/kcoreaddons-${KFMIN}:5
+ >=kde-frameworks/kcrash-${KFMIN}:5
+ >=kde-frameworks/kdbusaddons-${KFMIN}:5
+ >=kde-frameworks/kdeclarative-${KFMIN}:5
+ >=kde-frameworks/kded-${KFMIN}:5
+ >=kde-frameworks/kdelibs4support-${KFMIN}:5
+ >=kde-frameworks/kglobalaccel-${KFMIN}:5
+ >=kde-frameworks/kguiaddons-${KFMIN}:5
+ >=kde-frameworks/ki18n-${KFMIN}:5
+ >=kde-frameworks/kiconthemes-${KFMIN}:5
+ >=kde-frameworks/kio-${KFMIN}:5
+ >=kde-frameworks/kitemmodels-${KFMIN}:5
+ >=kde-frameworks/kitemviews-${KFMIN}:5
+ >=kde-frameworks/kjobwidgets-${KFMIN}:5
+ >=kde-frameworks/knewstuff-${KFMIN}:5
+ >=kde-frameworks/knotifications-${KFMIN}:5
+ >=kde-frameworks/knotifyconfig-${KFMIN}:5
+ >=kde-frameworks/kparts-${KFMIN}:5
+ >=kde-frameworks/krunner-${KFMIN}:5
+ >=kde-frameworks/kservice-${KFMIN}:5
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+ >=kde-frameworks/kwindowsystem-${KFMIN}:5
+ >=kde-frameworks/kxmlgui-${KFMIN}:5
+ >=kde-frameworks/plasma-${KFMIN}:5
+ >=kde-frameworks/solid-${KFMIN}:5
+ >=kde-frameworks/sonnet-${KFMIN}:5
+ >=kde-plasma/kwin-${PVCUT}:5
+ >=kde-plasma/libksysguard-${PVCUT}:5
+ >=kde-plasma/libkworkspace-${PVCUT}:5
+ >=kde-plasma/plasma-workspace-${PVCUT}:5
+ >=media-libs/phonon-4.11.0
+ virtual/libcrypt:=
+ x11-libs/libX11
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libxcb[xkb]
+ x11-libs/libxkbfile
+ emoji? (
+ app-i18n/ibus[emoji]
+ dev-libs/glib:2
+ media-fonts/noto-emoji
+ )
+ ibus? (
+ app-i18n/ibus
+ dev-libs/glib:2
+ >=dev-qt/qtx11extras-${QTMIN}:5
+ x11-libs/libxcb
+ x11-libs/xcb-util-keysyms
+ )
+ kaccounts? (
+ kde-apps/kaccounts-integration:5
+ net-libs/accounts-qt
+ )
+ policykit? ( >=kde-frameworks/kwallet-${KFMIN}:5 )
+ scim? ( app-i18n/scim )
+ semantic-desktop? ( >=kde-frameworks/baloo-${KFMIN}:5 )
+ telemetry? ( dev-libs/kuserfeedback:5 )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-libs/boost
+ x11-base/xorg-proto
+"
+RDEPEND="${COMMON_DEPEND}
+ !kde-plasma/user-manager
+ >=dev-qt/qtgraphicaleffects-${QTMIN}:5
+ >=dev-qt/qtquickcontrols2-${QTMIN}:5
+ >=kde-frameworks/kirigami-${KFMIN}:5
+ >=kde-frameworks/qqc2-desktop-style-${KFMIN}:5
+ >=kde-plasma/kde-cli-tools-${PVCUT}:5
+ >=kde-plasma/oxygen-${PVCUT}:5
+ sys-apps/util-linux
+ x11-apps/setxkbmap
+ x11-misc/xdg-user-dirs
+ kaccounts? ( net-libs/signon-oauth2 )
+ policykit? ( sys-apps/accountsservice )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${WORKDIR}/${XORGHDRS}/override-include-dirs.patch" # downstream patch
+ # 5.23 branch
+ "${FILESDIR}"/${P}-fix-panel-initial-sizing.patch
+ "${FILESDIR}"/${P}-fix-touchpad-applet-popup-close-on-click.patch # KDE-bug 445982
+ "${FILESDIR}"/${P}-fix-touchpad-mousearea-lookup.patch
+)
+
+src_prepare() {
+ ecm_src_prepare
+
+ if ! use policykit; then
+ ecm_punt_bogus_dep KF5 Wallet
+ cmake_run_in kcms cmake_comment_add_subdirectory users
+ fi
+
+ if ! use ibus; then
+ sed -e "s/Qt5X11Extras_FOUND AND XCB_XCB_FOUND AND XCB_KEYSYMS_FOUND/false/" \
+ -i applets/kimpanel/backend/ibus/CMakeLists.txt || die
+ fi
+
+ use emoji || cmake_run_in applets/kimpanel/backend/ibus \
+ cmake_comment_add_subdirectory emojier
+
+ # TODO: try to get a build switch upstreamed
+ if ! use scim; then
+ sed -e "s/^pkg_check_modules.*SCIM/#&/" -i CMakeLists.txt || die
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_DISABLE_FIND_PACKAGE_PackageKitQt5=ON # not packaged
+ -DEVDEV_INCLUDE_DIRS="${WORKDIR}/${XORGHDRS}"/include
+ -DXORGLIBINPUT_INCLUDE_DIRS="${WORKDIR}/${XORGHDRS}"/include
+ -DXORGSERVER_INCLUDE_DIRS="${WORKDIR}/${XORGHDRS}"/include
+ -DSYNAPTICS_INCLUDE_DIRS="${WORKDIR}/${XORGHDRS}"/include
+ $(cmake_use_find_package kaccounts AccountsQt5)
+ $(cmake_use_find_package kaccounts KAccounts)
+ $(cmake_use_find_package semantic-desktop KF5Baloo)
+ $(cmake_use_find_package telemetry KUserFeedback)
+ )
+ if ! use emoji && ! use ibus; then
+ mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_GLIB2=ON )
+ fi
+
+ ecm_src_configure
+}
+
+src_test() {
+ # parallel tests fail, foldermodeltest,positionertest hang, bug #646890
+ # test_kio_fonts needs D-Bus, bug #634166
+ # lookandfeel-kcmTest is unreliable for a long time, bug #607918
+ local myctestargs=(
+ -j1
+ -E "(foldermodeltest|positionertest|test_kio_fonts|lookandfeel-kcmTest)"
+ )
+
+ ecm_src_test
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ optfeature "screen reader support" app-accessibility/orca
+ fi
+ ecm_pkg_postinst
+}