From ee5f63c07048cf0c5d7da8ede716fa8be1baf7b6 Mon Sep 17 00:00:00 2001 From: Sefa Eyeoglu Date: Thu, 26 Dec 2019 16:45:03 -0700 Subject: [PATCH] [effects/slidingpopups] Tweak effect to make animation smoother and more consistent Summary: - Easing function for slide-in changed to InQuad - Easing function for slide-out changed to OutQuad - Opacity is now interpolated, too. Reviewers: #vdg, zzag, #kwin, sefaeyeoglu, ndavis, davidedmundson Reviewed By: #vdg, zzag, #kwin, sefaeyeoglu, ndavis, davidedmundson Subscribers: niccolove, ngraham, abetts, davidedmundson, zzag, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D18000 --- effects/slidingpopups/slidingpopups.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/effects/slidingpopups/slidingpopups.cpp b/effects/slidingpopups/slidingpopups.cpp index 2ce9e5f4d9..7316145e9e 100644 --- a/effects/slidingpopups/slidingpopups.cpp +++ b/effects/slidingpopups/slidingpopups.cpp @@ -464,7 +464,7 @@ void SlidingPopupsEffect::slideIn(EffectWindow *w) animation.kind = AnimationKind::In; animation.timeLine.setDirection(TimeLine::Forward); animation.timeLine.setDuration((*dataIt).slideInDuration); - animation.timeLine.setEasingCurve(QEasingCurve::InOutSine); + animation.timeLine.setEasingCurve(QEasingCurve::OutQuad); // If the opposite animation (Out) was active and it had shorter duration, // at this point, the timeline can end up in the "done" state. Thus, we have @@ -503,7 +503,8 @@ void SlidingPopupsEffect::slideOut(EffectWindow *w) animation.kind = AnimationKind::Out; animation.timeLine.setDirection(TimeLine::Backward); animation.timeLine.setDuration((*dataIt).slideOutDuration); - animation.timeLine.setEasingCurve(QEasingCurve::InOutSine); + // this is effectively InQuad because the direction is reversed + animation.timeLine.setEasingCurve(QEasingCurve::OutQuad); // If the opposite animation (In) was active and it had shorter duration, // at this point, the timeline can end up in the "done" state. Thus, we have