kde-plasma/plasma-desktop: Fix animation duration w/ KF-5.70
authorAndreas Sturmlechner <asturm@gentoo.org>
Sat, 16 May 2020 19:42:57 +0000 (21:42 +0200)
committerAndreas Sturmlechner <asturm@gentoo.org>
Sat, 16 May 2020 22:37:22 +0000 (00:37 +0200)
See also:
https://mail.kde.org/pipermail/distributions/2020-May/000361.html
https://pointieststick.com/2020/05/10/why-the-animations-in-your-plasma-5-18-feel-slow-now-and-when-it-will-be-fixed/

Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-animate-column-moves.patch [new file with mode: 0644]
kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-fix-animate-in-animation.patch [new file with mode: 0644]
kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-stop-multiplying-duration-values.patch [new file with mode: 0644]
kde-plasma/plasma-desktop/plasma-desktop-5.18.5-r1.ebuild [new file with mode: 0644]

diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-animate-column-moves.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-animate-column-moves.patch
new file mode 100644 (file)
index 0000000..d7603e4
--- /dev/null
@@ -0,0 +1,37 @@
+From 3a6795548fd755121084b6a77f9de23bece8f534 Mon Sep 17 00:00:00 2001
+From: David Edmundson <kde@davidedmundson.co.uk>
+Date: Fri, 17 Jan 2020 14:41:47 +0000
+Subject: [widgetexplorer] Animate column moves
+
+Test Plan:
+Search for something in the second column
+Now it doesn't jump
+
+Reviewers: #plasma, ngraham
+
+Reviewed By: ngraham
+
+Subscribers: ngraham, plasma-devel
+
+Tags: #plasma
+
+Differential Revision: https://phabricator.kde.org/D26699
+---
+ desktoppackage/contents/explorer/WidgetExplorer.qml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/desktoppackage/contents/explorer/WidgetExplorer.qml b/desktoppackage/contents/explorer/WidgetExplorer.qml
+index 1d98e59..56a0c22 100644
+--- a/desktoppackage/contents/explorer/WidgetExplorer.qml
++++ b/desktoppackage/contents/explorer/WidgetExplorer.qml
+@@ -326,7 +326,7 @@ Item {
+             //moved due to filtering
+             displaced: Transition {
+                 NumberAnimation {
+-                    properties: "y"
++                    properties: "x,y"
+                     duration: units.shortDuration * 3
+                 }
+             }
+-- 
+cgit v1.1
diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-fix-animate-in-animation.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-fix-animate-in-animation.patch
new file mode 100644 (file)
index 0000000..cc39c1e
--- /dev/null
@@ -0,0 +1,49 @@
+From 977665254990892411c74e8a04a8fdb10ef68547 Mon Sep 17 00:00:00 2001
+From: David Edmundson <kde@davidedmundson.co.uk>
+Date: Fri, 17 Jan 2020 14:41:42 +0000
+Subject: [widgetexplorer] Fix animate in animation
+
+Summary:
+The animation in comes in from offscreen on the left.
+
+"to: 0" was correct when we had one column. With the 2 column view it
+means we animate two items on top of each other and jump when the
+animation completes. We want to animate to the final position the item
+will end up in.
+
+It bugs me more than it probably should.
+
+Test Plan:
+Search for "asdfasdfsadfsadf"
+Remove search
+Animation now looks ok, instead of horrific
+
+Reviewers: #plasma, ngraham
+
+Reviewed By: ngraham
+
+Subscribers: ngraham, plasma-devel
+
+Tags: #plasma
+
+Differential Revision: https://phabricator.kde.org/D26698
+---
+ desktoppackage/contents/explorer/WidgetExplorer.qml | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/desktoppackage/contents/explorer/WidgetExplorer.qml b/desktoppackage/contents/explorer/WidgetExplorer.qml
+index b7bbce8..1d98e59 100644
+--- a/desktoppackage/contents/explorer/WidgetExplorer.qml
++++ b/desktoppackage/contents/explorer/WidgetExplorer.qml
+@@ -305,9 +305,7 @@ Item {
+                 NumberAnimation {
+                     properties: "x"
+                     from: -list.width
+-                    to: 0
+                     duration: units.shortDuration * 3
+-
+                 }
+             }
+-- 
+cgit v1.1
diff --git a/kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-stop-multiplying-duration-values.patch b/kde-plasma/plasma-desktop/files/plasma-desktop-5.18.5-stop-multiplying-duration-values.patch
new file mode 100644 (file)
index 0000000..593665a
--- /dev/null
@@ -0,0 +1,140 @@
+From f3bbc0ba0e34ea1b34b106228c02d85865ed904a Mon Sep 17 00:00:00 2001
+From: Nate Graham <nate@kde.org>
+Date: Tue, 24 Mar 2020 08:15:12 -0600
+Subject: Stop multiplying duration values
+
+Summary:
+After D28144, some animations are now too long because they were inappropriately
+multiplying a duration value. That's no longer necessary, so let's remove the
+multiplication.
+
+Depends on D28144
+
+Test Plan: Various things that were a bit too slow before feel just right now
+
+Reviewers: #vdg, #plasma
+
+Subscribers: plasma-devel
+
+Tags: #plasma
+
+Differential Revision: https://phabricator.kde.org/D28239
+---
+ applets/taskmanager/package/contents/ui/Task.qml             | 2 +-
+ applets/taskmanager/package/contents/ui/TaskList.qml         | 2 +-
+ desktoppackage/contents/configuration/PanelConfiguration.qml | 4 ++--
+ desktoppackage/contents/explorer/WidgetExplorer.qml          | 6 +++---
+ toolboxes/desktoptoolbox/contents/ui/ToolBoxButton.qml       | 6 +++---
+ 5 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/applets/taskmanager/package/contents/ui/Task.qml b/applets/taskmanager/package/contents/ui/Task.qml
+index 2bf8b88..9683fab 100644
+--- a/applets/taskmanager/package/contents/ui/Task.qml
++++ b/applets/taskmanager/package/contents/ui/Task.qml
+@@ -293,7 +293,7 @@ MouseArea {
+         Timer {
+             id: timer
+-            interval: units.longDuration * 2
++            interval: units.longDuration
+             repeat: false
+             onTriggered: {
+diff --git a/applets/taskmanager/package/contents/ui/TaskList.qml b/applets/taskmanager/package/contents/ui/TaskList.qml
+index 594420b..6d6bc45 100644
+--- a/applets/taskmanager/package/contents/ui/TaskList.qml
++++ b/applets/taskmanager/package/contents/ui/TaskList.qml
+@@ -34,7 +34,7 @@ Flow {
+             NumberAnimation {
+                 properties: "x, y"
+                 easing.type: Easing.OutQuad
+-                duration: units.longDuration * 2
++                duration: units.longDuration
+             }
+             PropertyAction { target: taskList; property: "animating"; value: false }
+diff --git a/desktoppackage/contents/configuration/PanelConfiguration.qml b/desktoppackage/contents/configuration/PanelConfiguration.qml
+index 0e11a96..33e3fbc 100644
+--- a/desktoppackage/contents/configuration/PanelConfiguration.qml
++++ b/desktoppackage/contents/configuration/PanelConfiguration.qml
+@@ -103,7 +103,7 @@ PlasmaCore.FrameSvgItem {
+                     return panel.screenGeometry.y + panel.screenGeometry.height - panel.height - panel.distance
+                 }
+             }
+-            duration: units.shortDuration * 3
++            duration: units.shortDuration
+         }
+         NumberAnimation {
+@@ -122,7 +122,7 @@ PlasmaCore.FrameSvgItem {
+                     return panel.screenGeometry.y + panel.screenGeometry.height - panel.height - configDialog.height - panel.distance
+                 }
+             }
+-            duration: units.shortDuration * 3
++            duration: units.shortDuration
+         }
+     }
+ //END Animations
+diff --git a/desktoppackage/contents/explorer/WidgetExplorer.qml b/desktoppackage/contents/explorer/WidgetExplorer.qml
+index 1648708..e26cc40 100644
+--- a/desktoppackage/contents/explorer/WidgetExplorer.qml
++++ b/desktoppackage/contents/explorer/WidgetExplorer.qml
+@@ -306,7 +306,7 @@ Item {
+                 NumberAnimation {
+                     properties: "x"
+                     from: -list.width
+-                    duration: units.shortDuration * 3
++                    duration: units.shortDuration
+                 }
+             }
+@@ -315,7 +315,7 @@ Item {
+                 NumberAnimation {
+                     properties: "x"
+                     to: list.width
+-                    duration: units.shortDuration * 3
++                    duration: units.shortDuration
+                 }
+             }
+@@ -328,7 +328,7 @@ Item {
+             displaced: Transition {
+                 NumberAnimation {
+                     properties: "x,y"
+-                    duration: units.shortDuration * 3
++                    duration: units.shortDuration
+                 }
+             }
+diff --git a/toolboxes/desktoptoolbox/contents/ui/ToolBoxButton.qml b/toolboxes/desktoptoolbox/contents/ui/ToolBoxButton.qml
+index 06524c3..eb6b190 100644
+--- a/toolboxes/desktoptoolbox/contents/ui/ToolBoxButton.qml
++++ b/toolboxes/desktoptoolbox/contents/ui/ToolBoxButton.qml
+@@ -54,14 +54,14 @@ Item {
+     }
+     Behavior on rotation {
+         NumberAnimation {
+-            duration: units.shortDuration * 3;
++            duration: units.shortDuration;
+             easing.type: Easing.InOutExpo;
+         }
+         enabled: visible
+     }
+     Behavior on x {
+         NumberAnimation {
+-            duration: units.shortDuration * 3;
++            duration: units.shortDuration;
+             easing.type: Easing.InOutExpo;
+         }
+         enabled: visible
+@@ -69,7 +69,7 @@ Item {
+     }
+     Behavior on y {
+         NumberAnimation {
+-            duration: units.shortDuration * 3;
++            duration: units.shortDuration;
+             easing.type: Easing.InOutExpo;
+         }
+         enabled: visible
+-- 
+cgit v1.1
diff --git a/kde-plasma/plasma-desktop/plasma-desktop-5.18.5-r1.ebuild b/kde-plasma/plasma-desktop/plasma-desktop-5.18.5-r1.ebuild
new file mode 100644 (file)
index 0000000..5b6539d
--- /dev/null
@@ -0,0 +1,178 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+KFMIN=5.66.0
+PVCUT=$(ver_cut 1-3)
+QTMIN=5.12.3
+VIRTUALX_REQUIRED="test"
+inherit ecm kde.org
+
+DESCRIPTION="KDE Plasma desktop"
+
+# Avoid pulling in xf86-input-{evdev,libinput,synaptics} DEPENDs
+# just for 1 header each. touchpad also uses a header from xorg-server.
+SHA_EVDEV="425ed601"
+SHA_LIBINPUT="e52daf20"
+SHA_SYNAPTICS="383355fa"
+SHA_XSERVER="d511a301"
+XORG_URI="https://gitlab.freedesktop.org/xorg/driver/PKG/-/raw"
+SRC_URI+="
+       ${XORG_URI/PKG/xf86-input-evdev}/${SHA_EVDEV}/include/evdev-properties.h -> evdev-properties.h-${SHA_EVDEV}
+       ${XORG_URI/PKG/xf86-input-libinput}/${SHA_LIBINPUT}/include/libinput-properties.h -> libinput-properties.h-${SHA_LIBINPUT}
+       ${XORG_URI/PKG/xf86-input-synaptics}/${SHA_SYNAPTICS}/include/synaptics-properties.h -> synaptics-properties.h-${SHA_SYNAPTICS}
+       ${XORG_URI/driver\/PKG/xserver}/${SHA_XSERVER}/include/xserver-properties.h -> xserver-properties.h-${SHA_XSERVER}
+"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+IUSE="+fontconfig ibus scim +semantic-desktop"
+
+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/kdbusaddons-${KFMIN}:5
+       >=kde-frameworks/kdeclarative-${KFMIN}:5
+       >=kde-frameworks/kded-${KFMIN}:5
+       >=kde-frameworks/kdelibs4support-${KFMIN}:5
+       >=kde-frameworks/kemoticons-${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/kwallet-${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/plasma-workspace-${PVCUT}:5
+       media-libs/phonon[qt5(+)]
+       x11-libs/libX11
+       x11-libs/libXcursor
+       x11-libs/libXfixes
+       x11-libs/libXi
+       x11-libs/libxcb[xkb]
+       x11-libs/libxkbfile
+       fontconfig? (
+               media-libs/fontconfig
+               media-libs/freetype
+               x11-libs/libXft
+               x11-libs/xcb-util-image
+       )
+       ibus? (
+               app-i18n/ibus
+               dev-libs/glib:2
+               >=dev-qt/qtx11extras-${QTMIN}:5
+               x11-libs/libxcb
+               x11-libs/xcb-util-keysyms
+       )
+       scim? ( app-i18n/scim )
+       semantic-desktop? ( >=kde-frameworks/baloo-${KFMIN}:5 )
+"
+DEPEND="${COMMON_DEPEND}
+       dev-libs/boost
+       x11-base/xorg-proto
+       fontconfig? ( x11-libs/libXrender )
+"
+RDEPEND="${COMMON_DEPEND}
+       >=dev-qt/qtgraphicaleffects-${QTMIN}:5
+       >=dev-qt/qtquickcontrols2-${QTMIN}:5
+       >=kde-frameworks/kirigami-${KFMIN}:5
+       >=kde-frameworks/qqc2-desktop-style-${KFMIN}:5
+       >=kde-plasma/breeze-${PVCUT}:5
+       >=kde-plasma/kde-cli-tools-${PVCUT}:5
+       >=kde-plasma/oxygen-${PVCUT}:5
+       sys-apps/util-linux
+       x11-apps/setxkbmap
+       !<kde-plasma/kdeplasma-addons-5.15.80
+"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-5.18.4.1-synaptics-header.patch" # in Plasma/5.19
+       "${FILESDIR}/${P}-findxorgserver.patch" # in Plasma/5.19
+       "${FILESDIR}/${P}-override-include-dirs.patch" # downstream patch
+
+       # Fix animation duration w/ KDE Frameworks 5.70 (Plasma/5.19 backports):
+       # https://pointieststick.com/2020/05/10/why-the-animations-in-your-plasma-5-18-feel-slow-now-and-when-it-will-be-fixed/
+       "${FILESDIR}/${P}-fix-animate-in-animation.patch"
+       "${FILESDIR}/${P}-animate-column-moves.patch"
+       "${FILESDIR}/${P}-stop-multiplying-duration-values.patch"
+)
+
+src_unpack() {
+       kde.org_src_unpack
+       mkdir "${WORKDIR}/include" || die "Failed to prepare evdev/libinput dir"
+       cp "${DISTDIR}"/evdev-properties.h-${SHA_EVDEV} \
+               "${WORKDIR}"/include/evdev-properties.h || die "Failed to copy evdev"
+       cp "${DISTDIR}"/libinput-properties.h-${SHA_LIBINPUT} \
+               "${WORKDIR}"/include/libinput-properties.h || die "Failed to copy libinput"
+       cp "${DISTDIR}"/synaptics-properties.h-${SHA_SYNAPTICS} \
+               "${WORKDIR}"/include/synaptics-properties.h || die "Failed to copy synaptics"
+       cp "${DISTDIR}"/xserver-properties.h-${SHA_XSERVER} \
+               "${WORKDIR}"/include/xserver-properties.h || die "Failed to copy xserver"
+}
+
+src_configure() {
+       local mycmakeargs=(
+               $(cmake_use_find_package fontconfig Fontconfig)
+               -DEvdev_INCLUDE_DIRS="${WORKDIR}"/include
+               -DXORGLIBINPUT_INCLUDE_DIRS="${WORKDIR}"/include
+               -DXORGSERVER_INCLUDE_DIRS="${WORKDIR}"/include
+               -DSynaptics_INCLUDE_DIRS="${WORKDIR}"/include
+               $(cmake_use_find_package ibus IBus)
+               $(cmake_use_find_package scim SCIM)
+               $(cmake_use_find_package semantic-desktop KF5Baloo)
+       )
+
+       ecm_src_configure
+}
+
+src_test() {
+       # parallel tests fail, foldermodeltest,positionertest hang, bug #646890
+       # needs D-Bus, bug #634166
+       local myctestargs=(
+               -j1
+               -E "(foldermodeltest|positionertest|test_kio_fonts)"
+       )
+
+       ecm_src_test
+}