diff --git a/5_27_9_Patch.patch b/5_27_9_Patch.patch
deleted file mode 100644
index 0969f7b..0000000
--- a/5_27_9_Patch.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-Subject: [PATCH] 5.27.9 Patch
----
-Index: src/effects/slide/slide.kcfg
-IDEA additional info:
-Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
-<+>UTF-8
-===================================================================
-diff --git a/src/effects/slide/slide.kcfg b/src/effects/slide/slide.kcfg
---- a/src/effects/slide/slide.kcfg (revision 9d677be2a82a781e6ab19216716d9e0d2dba6d53)
-+++ b/src/effects/slide/slide.kcfg (date 1699986700881)
-@@ -6,11 +6,17 @@
- http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
-
-
-+
-+ 0
-+
-
- 45
-
-
- 20
-+
-+
-+ false
-
-
- true
-Index: src/effects/slide/slide.cpp
-IDEA additional info:
-Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
-<+>UTF-8
-===================================================================
-diff --git a/src/effects/slide/slide.cpp b/src/effects/slide/slide.cpp
---- a/src/effects/slide/slide.cpp (revision 9d677be2a82a781e6ab19216716d9e0d2dba6d53)
-+++ b/src/effects/slide/slide.cpp (date 1699986700867)
-@@ -25,6 +25,8 @@
- initConfig();
- reconfigure(ReconfigureAll);
-
-+ m_timeLine.setEasingCurve(QEasingCurve::OutCubic);
-+
- connect(effects, QOverload::of(&EffectsHandler::desktopChanged),
- this, &SlideEffect::desktopChanged);
- connect(effects, QOverload::of(&EffectsHandler::desktopChanging),
-@@ -59,11 +61,8 @@
- {
- SlideConfig::self()->read();
-
-- const qreal springConstant = 300.0 / effects->animationTimeFactor();
-- const qreal dampingRatio = 1.1;
--
-- m_motionX = SpringMotion(springConstant, dampingRatio);
-- m_motionY = SpringMotion(springConstant, dampingRatio);
-+ m_fullAnimationDuration = animationTime(500);
-+ m_timeLine.setDuration(std::chrono::milliseconds(m_fullAnimationDuration));
-
- m_hGap = SlideConfig::horizontalGap();
- m_vGap = SlideConfig::verticalGap();
-@@ -96,13 +95,10 @@
- timeDelta = presentTime - m_lastPresentTime;
- }
- m_lastPresentTime = presentTime;
-+ m_timeLine.update(timeDelta);
-
- if (m_state == State::ActiveAnimation) {
-- m_motionX.advance(timeDelta);
-- m_motionY.advance(timeDelta);
-- const QSize virtualSpaceSize = effects->virtualScreenSize();
-- m_currentPosition.setX(m_motionX.position() / virtualSpaceSize.width());
-- m_currentPosition.setY(m_motionY.position() / virtualSpaceSize.height());
-+ m_currentPosition = m_startPos + (m_endPos - m_startPos) * m_timeLine.value();
- }
-
- const int w = effects->desktopGridWidth();
-@@ -252,7 +248,7 @@
-
- void SlideEffect::postPaintScreen()
- {
-- if (m_state == State::ActiveAnimation && !m_motionX.isMoving() && !m_motionY.isMoving()) {
-+ if (m_state == State::ActiveAnimation && m_timeLine.done()) {
- finishedSwitching();
- }
-
-@@ -295,6 +291,7 @@
-
- m_state = State::ActiveAnimation;
- m_movingWindow = movingWindow;
-+ m_timeLine.reset();
-
- m_startPos = m_currentPosition;
- m_endPos = effects->desktopGridCoords(current);
-@@ -302,11 +299,19 @@
- optimizePath();
- }
-
-- const QSize virtualSpaceSize = effects->virtualScreenSize();
-- m_motionX.setAnchor(m_endPos.x() * virtualSpaceSize.width());
-- m_motionX.setPosition(m_startPos.x() * virtualSpaceSize.width());
-- m_motionY.setAnchor(m_endPos.y() * virtualSpaceSize.height());
-- m_motionY.setPosition(m_startPos.y() * virtualSpaceSize.height());
-+ // Find an apropriate duration
-+ QPointF distance = m_startPos - m_endPos;
-+ distance.setX(std::abs(distance.x()));
-+ distance.setY(std::abs(distance.y()));
-+ if (distance.x() < 1 && distance.y() < 1) {
-+ if (distance.x() > distance.y()) {
-+ m_timeLine.setDuration(std::chrono::milliseconds(std::max(1, (int)(m_fullAnimationDuration * distance.x()))));
-+ } else {
-+ m_timeLine.setDuration(std::chrono::milliseconds(std::max(1, (int)(m_fullAnimationDuration * distance.y()))));
-+ }
-+ } else {
-+ m_timeLine.setDuration(std::chrono::milliseconds(m_fullAnimationDuration));
-+ }
-
- effects->setActiveFullScreenEffect(this);
- effects->addRepaintFull();
-Index: src/effects/slide/slide_config.ui
-IDEA additional info:
-Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
-<+>UTF-8
-===================================================================
-diff --git a/src/effects/slide/slide_config.ui b/src/effects/slide/slide_config.ui
---- a/src/effects/slide/slide_config.ui (revision 9d677be2a82a781e6ab19216716d9e0d2dba6d53)
-+++ b/src/effects/slide/slide_config.ui (date 1699986700887)
-@@ -12,6 +12,39 @@
-
-
- -
-+
-+
-
-+
-+
-+ Duration:
-+
-+
-+
-+ -
-+
-+
-+
-+ 0
-+ 0
-+
-+
-+
-+ Default
-+
-+
-+ milliseconds
-+
-+
-+ 9999
-+
-+
-+ 10
-+
-+
-+
-+
-+
-+ -
-
-
- Gap between desktops
-@@ -64,6 +97,13 @@
-
-
-
-+
-+
-+ -
-+
-+
-+ Slide docks
-+
-
-
- -
diff --git a/PKGBUILD b/PKGBUILD
index 3595f4f..3ebcf1d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -27,7 +27,7 @@ validpgpkeys=('E0A3EB202F8E57528E13E72FD7574483BB57B18D' # Jonathan Esk-Riddell
build() {
cd $pkgname-$pkgver
- patch -p1 < ../5_27_9_Patch.patch
+ patch -p1 < ../../revert_mass-spring-damper_model_for_slide_animation.patch
cd ..
cmake -B build -S $pkgname-$pkgver \
-DCMAKE_INSTALL_LIBEXECDIR=lib \
diff --git a/revert_mass-spring-damper_model_for_slide_animation.patch b/revert_mass-spring-damper_model_for_slide_animation.patch
index cb1d8ab..0969f7b 100644
--- a/revert_mass-spring-damper_model_for_slide_animation.patch
+++ b/revert_mass-spring-damper_model_for_slide_animation.patch
@@ -1,4 +1,4 @@
-Subject: [PATCH] revert mass-spring-damper model for slide animation
+Subject: [PATCH] 5.27.9 Patch
---
Index: src/effects/slide/slide.kcfg
IDEA additional info:
@@ -6,8 +6,8 @@ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/effects/slide/slide.kcfg b/src/effects/slide/slide.kcfg
---- a/src/effects/slide/slide.kcfg (revision 9ae6a9fc7377d72e8a320e1eca4dce7fba40205c)
-+++ b/src/effects/slide/slide.kcfg (date 1699716587537)
+--- a/src/effects/slide/slide.kcfg (revision 9d677be2a82a781e6ab19216716d9e0d2dba6d53)
++++ b/src/effects/slide/slide.kcfg (date 1699986700881)
@@ -6,11 +6,17 @@
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
@@ -26,86 +26,24 @@ diff --git a/src/effects/slide/slide.kcfg b/src/effects/slide/slide.kcfg
true
-Index: src/effects/slide/slide_config.ui
-IDEA additional info:
-Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
-<+>UTF-8
-===================================================================
-diff --git a/src/effects/slide/slide_config.ui b/src/effects/slide/slide_config.ui
---- a/src/effects/slide/slide_config.ui (revision 9ae6a9fc7377d72e8a320e1eca4dce7fba40205c)
-+++ b/src/effects/slide/slide_config.ui (date 1699716657985)
-@@ -12,6 +12,39 @@
-
-
- -
-+
-+
-
-+
-+
-+ Duration:
-+
-+
-+
-+ -
-+
-+
-+
-+ 0
-+ 0
-+
-+
-+
-+ Default
-+
-+
-+ milliseconds
-+
-+
-+ 9999
-+
-+
-+ 10
-+
-+
-+
-+
-+
-+ -
-
-
- Gap between desktops
-@@ -64,6 +97,13 @@
-
-
-
-+
-+
-+ -
-+
-+
-+ Slide docks
-+
-
-
- -
Index: src/effects/slide/slide.cpp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/effects/slide/slide.cpp b/src/effects/slide/slide.cpp
---- a/src/effects/slide/slide.cpp (revision 9ae6a9fc7377d72e8a320e1eca4dce7fba40205c)
-+++ b/src/effects/slide/slide.cpp (date 1699716419773)
-@@ -26,6 +26,8 @@
+--- a/src/effects/slide/slide.cpp (revision 9d677be2a82a781e6ab19216716d9e0d2dba6d53)
++++ b/src/effects/slide/slide.cpp (date 1699986700867)
+@@ -25,6 +25,8 @@
initConfig();
reconfigure(ReconfigureAll);
+ m_timeLine.setEasingCurve(QEasingCurve::OutCubic);
+
- connect(effects, &EffectsHandler::desktopChanged,
+ connect(effects, QOverload::of(&EffectsHandler::desktopChanged),
this, &SlideEffect::desktopChanged);
- connect(effects, &EffectsHandler::desktopChanging,
-@@ -62,11 +64,8 @@
+ connect(effects, QOverload::of(&EffectsHandler::desktopChanging),
+@@ -59,11 +61,8 @@
{
SlideConfig::self()->read();
@@ -119,7 +57,7 @@ diff --git a/src/effects/slide/slide.cpp b/src/effects/slide/slide.cpp
m_hGap = SlideConfig::horizontalGap();
m_vGap = SlideConfig::verticalGap();
-@@ -99,13 +98,10 @@
+@@ -96,13 +95,10 @@
timeDelta = presentTime - m_lastPresentTime;
}
m_lastPresentTime = presentTime;
@@ -134,7 +72,7 @@ diff --git a/src/effects/slide/slide.cpp b/src/effects/slide/slide.cpp
+ m_currentPosition = m_startPos + (m_endPos - m_startPos) * m_timeLine.value();
}
- const QList desktops = effects->desktops();
+ const int w = effects->desktopGridWidth();
@@ -252,7 +248,7 @@
void SlideEffect::postPaintScreen()
@@ -177,3 +115,65 @@ diff --git a/src/effects/slide/slide.cpp b/src/effects/slide/slide.cpp
effects->setActiveFullScreenEffect(this);
effects->addRepaintFull();
+Index: src/effects/slide/slide_config.ui
+IDEA additional info:
+Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
+<+>UTF-8
+===================================================================
+diff --git a/src/effects/slide/slide_config.ui b/src/effects/slide/slide_config.ui
+--- a/src/effects/slide/slide_config.ui (revision 9d677be2a82a781e6ab19216716d9e0d2dba6d53)
++++ b/src/effects/slide/slide_config.ui (date 1699986700887)
+@@ -12,6 +12,39 @@
+
+
+
-
++
++
-
++
++
++ Duration:
++
++
++
++ -
++
++
++
++ 0
++ 0
++
++
++
++ Default
++
++
++ milliseconds
++
++
++ 9999
++
++
++ 10
++
++
++
++
++
++ -
+
+
+ Gap between desktops
+@@ -64,6 +97,13 @@
+
+
+
++
++
++ -
++
++
++ Slide docks
++
+
+
+ -