kde-plasma/plasma-desktop: backport upstream fixes for 5.25.5

Upstream commit: 234cd860532449f017ecbbca6a8caad5473fcf8b
Upstream commit: 7e1dec42ba12cdbf768ba7fba613e837d645b02c

KDE-bug: https://bugs.kde.org/413645
Bug: https://bugs.gentoo.org/883289
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2022-11-25 09:23:26 +00:00
parent 1fde9bdcfb
commit ac659d07d5
3 changed files with 253 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
https://invent.kde.org/plasma/plasma-desktop/-/commit/7e1dec42ba12cdbf768ba7fba613e837d645b02c
From 7e1dec42ba12cdbf768ba7fba613e837d645b02c Mon Sep 17 00:00:00 2001
From: Marco Martin <notmart@gmail.com>
Date: Sun, 25 Sep 2022 16:28:59 -0500
Subject: [PATCH] remove the check for > 0
--- a/containments/desktop/package/contents/ui/main.qml
+++ b/containments/desktop/package/contents/ui/main.qml
@@ -85,10 +85,10 @@ FolderViewDropArea {
topMargin: (isContainment && plasmoid.availableScreenRect) ? plasmoid.availableScreenRect.y : 0
rightMargin: (isContainment && plasmoid.availableScreenRect) && parent
- ? Math.max(0, parent.width - (plasmoid.availableScreenRect.x + plasmoid.availableScreenRect.width)) : 0
+ ? parent.width - (plasmoid.availableScreenRect.x + plasmoid.availableScreenRect.width) : 0
bottomMargin: (isContainment && plasmoid.availableScreenRect) && parent
- ? Math.max(0, parent.height - (plasmoid.availableScreenRect.y + plasmoid.availableScreenRect.height)) : 0
+ ? parent.height - (plasmoid.availableScreenRect.y + plasmoid.availableScreenRect.height) : 0
}
Behavior on anchors.topMargin {
GitLab

View File

@@ -0,0 +1,48 @@
https://invent.kde.org/plasma/plasma-desktop/-/commit/234cd860532449f017ecbbca6a8caad5473fcf8b
From 234cd860532449f017ecbbca6a8caad5473fcf8b Mon Sep 17 00:00:00 2001
From: Marco Martin <notmart@gmail.com>
Date: Sun, 25 Sep 2022 16:27:13 -0500
Subject: [PATCH] Use relayout locking
This makes use of the layout locking freature introduced in
The resize of the layout area can happen either by screen resolution
change or available screen area change (a panel appears or is resized)
This is not an atomic operation, as width and height are usually set in
2 different operations, and even worse the layout area is resized to
match the available one with an animation, so many intermediate resizes
that should never cause a relayout happen.
A compression timer limits the actual relayouts to hopefully one,
but if the system is really slowed down
(for instance, startup) the timer may expire and cause relayouts in
non useful sizes, losing the needed configuration
The lock blocks all relayout and config writes when the size of the
layout area doesn't correspond to corona availablescreenrect, which are
the only "settled" cases.
BUG:413645
--- a/containments/desktop/package/contents/ui/main.qml
+++ b/containments/desktop/package/contents/ui/main.qml
@@ -85,10 +85,10 @@ FolderViewDropArea {
topMargin: (isContainment && plasmoid.availableScreenRect) ? plasmoid.availableScreenRect.y : 0
rightMargin: (isContainment && plasmoid.availableScreenRect) && parent
- ? parent.width - (plasmoid.availableScreenRect.x + plasmoid.availableScreenRect.width) : 0
+ ? Math.max(0, parent.width - (plasmoid.availableScreenRect.x + plasmoid.availableScreenRect.width)) : 0
bottomMargin: (isContainment && plasmoid.availableScreenRect) && parent
- ? parent.height - (plasmoid.availableScreenRect.y + plasmoid.availableScreenRect.height) : 0
+ ? Math.max(0, parent.height - (plasmoid.availableScreenRect.y + plasmoid.availableScreenRect.height)) : 0
}
Behavior on anchors.topMargin {
@@ -263,6 +263,7 @@ FolderViewDropArea {
ContainmentLayoutManager.AppletsLayout {
id: appletsLayout
anchors.fill: parent
+ relayoutLock: width != plasmoid.availableScreenRect.width || height != plasmoid.availableScreenRect.height
// NOTE: use plasmoid.availableScreenRect and not own width and height as they are updated not atomically
configKey: "ItemGeometries-" + Math.round(plasmoid.screenGeometry.width) + "x" + Math.round(plasmoid.screenGeometry.height)
fallbackConfigKey: plasmoid.availableScreenRect.width > plasmoid.availableScreenRect.height ? "ItemGeometriesHorizontal" : "ItemGeometriesVertical"
GitLab

View File

@@ -0,0 +1,182 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
ECM_HANDBOOK="forceoptional"
ECM_TEST="true"
KFMIN=5.99.0
PVCUT=$(ver_cut 1-3)
QTMIN=5.15.5
VIRTUALX_REQUIRED="test"
inherit ecm plasma.kde.org optfeature
DESCRIPTION="KDE Plasma desktop"
XORGHDRS="${PN}-override-include-dirs-2"
SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${XORGHDRS}.tar.xz"
LICENSE="GPL-2" # TODO: CHECK
SLOT="5"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="emoji ibus +kaccounts 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
x11-libs/libX11
x11-libs/libXfixes
x11-libs/libXi
x11-libs/libxcb
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
)
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 )
"
BDEPEND="virtual/pkgconfig"
PATCHES=(
"${WORKDIR}/${XORGHDRS}/${PN}-5.24.6-override-include-dirs.patch" # downstream patch
"${FILESDIR}/${P}-desktoptoolbox-fix-flickering-on-close.patch" # KDE-bug 417849
"${FILESDIR}/${P}-folderview-fix-grid-overflow-property.patch" # KDE-bug 419878
"${FILESDIR}/${P}-lock-layout.patch" # KDE-bug 413645
"${FILESDIR}/${P}-lock-layout-check.patch"
)
src_prepare() {
ecm_src_prepare
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
}