main
Bartłomiej Mazurski 10 months ago
parent 30ef3231fa
commit c75e2f57f1

@ -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" >
<kcfgfile arg="true"/>
<group name="Effect-slide">
+ <entry name="Duration" type="UInt">
+ <default>0</default>
+ </entry>
<entry name="HorizontalGap" type="UInt">
<default>45</default>
</entry>
<entry name="VerticalGap" type="UInt">
<default>20</default>
+ </entry>
+ <entry name="SlideDocks" type="Bool">
+ <default>false</default>
</entry>
<entry name="SlideBackground" type="Bool">
<default>true</default>
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<SlideConfig>();
reconfigure(ReconfigureAll);
+ m_timeLine.setEasingCurve(QEasingCurve::OutCubic);
+
connect(effects, QOverload<int, int, EffectWindow *>::of(&EffectsHandler::desktopChanged),
this, &SlideEffect::desktopChanged);
connect(effects, QOverload<uint, QPointF, EffectWindow *>::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<SlideConfig>(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 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
+ <layout class="QFormLayout" name="layout_Duration">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_Duration">
+ <property name="text">
+ <string>Duration:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="kcfg_Duration">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string extracomment="Duration of the slide animation.">Default</string>
+ </property>
+ <property name="suffix">
+ <string> milliseconds</string>
+ </property>
+ <property name="maximum">
+ <number>9999</number>
+ </property>
+ <property name="singleStep">
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<widget class="QGroupBox" name="groupBox_Gaps">
<property name="title">
<string>Gap between desktops</string>
@@ -64,6 +97,13 @@
</widget>
</item>
</layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_SlideDocks">
+ <property name="text">
+ <string>Slide docks</string>
+ </property>
</widget>
</item>
<item>

@ -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 \

@ -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" >
<kcfgfile arg="true"/>
@ -26,86 +26,24 @@ diff --git a/src/effects/slide/slide.kcfg b/src/effects/slide/slide.kcfg
</entry>
<entry name="SlideBackground" type="Bool">
<default>true</default>
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 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
+ <layout class="QFormLayout" name="layout_Duration">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_Duration">
+ <property name="text">
+ <string>Duration:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="kcfg_Duration">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string extracomment="Duration of the slide animation.">Default</string>
+ </property>
+ <property name="suffix">
+ <string> milliseconds</string>
+ </property>
+ <property name="maximum">
+ <number>9999</number>
+ </property>
+ <property name="singleStep">
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<widget class="QGroupBox" name="groupBox_Gaps">
<property name="title">
<string>Gap between desktops</string>
@@ -64,6 +97,13 @@
</widget>
</item>
</layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_SlideDocks">
+ <property name="text">
+ <string>Slide docks</string>
+ </property>
</widget>
</item>
<item>
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<SlideConfig>();
reconfigure(ReconfigureAll);
+ m_timeLine.setEasingCurve(QEasingCurve::OutCubic);
+
connect(effects, &EffectsHandler::desktopChanged,
connect(effects, QOverload<int, int, EffectWindow *>::of(&EffectsHandler::desktopChanged),
this, &SlideEffect::desktopChanged);
connect(effects, &EffectsHandler::desktopChanging,
@@ -62,11 +64,8 @@
connect(effects, QOverload<uint, QPointF, EffectWindow *>::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<VirtualDesktop *> 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 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
+ <layout class="QFormLayout" name="layout_Duration">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_Duration">
+ <property name="text">
+ <string>Duration:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="kcfg_Duration">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="specialValueText">
+ <string extracomment="Duration of the slide animation.">Default</string>
+ </property>
+ <property name="suffix">
+ <string> milliseconds</string>
+ </property>
+ <property name="maximum">
+ <number>9999</number>
+ </property>
+ <property name="singleStep">
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<widget class="QGroupBox" name="groupBox_Gaps">
<property name="title">
<string>Gap between desktops</string>
@@ -64,6 +97,13 @@
</widget>
</item>
</layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_SlideDocks">
+ <property name="text">
+ <string>Slide docks</string>
+ </property>
</widget>
</item>
<item>

Loading…
Cancel
Save