From 913f92ae9aa8b45522dc17e4302cf78f33f88663 Mon Sep 17 00:00:00 2001 From: Vlad Zagorodniy Date: Fri, 20 Apr 2018 21:10:30 +0300 Subject: [PATCH] [effects/magiclamp] Don't reset timeline Summary: Resetting timeline while animating a window causes some visual "glitches", see videos below. Even though we can't use `QTimer::toggleDirection`, that's safe to delete code which resets timeline because `prePaintScreen` figures out correct direction of the timeline. Before {F5809835, layout=center, size=full} After {F5809850, layout=center, size=full} Test Plan: * Set duration to 5000 * Furiously click an icon in the task manager Reviewers: #kwin, davidedmundson Reviewed By: davidedmundson Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D12253 --- effects/magiclamp/magiclamp.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/effects/magiclamp/magiclamp.cpp b/effects/magiclamp/magiclamp.cpp index a392d49422..1c4321d37e 100644 --- a/effects/magiclamp/magiclamp.cpp +++ b/effects/magiclamp/magiclamp.cpp @@ -342,9 +342,9 @@ void MagicLampEffect::slotWindowMinimized(EffectWindow* w) return; if (!mTimeLineWindows.contains(w)) { mTimeLineWindows.insert(w, new QTimeLine(mAnimationDuration, this)); + mTimeLineWindows[w]->setCurrentTime(0); mTimeLineWindows[w]->setCurveShape(QTimeLine::LinearCurve); } - mTimeLineWindows[w]->setCurrentTime(0); } void MagicLampEffect::slotWindowUnminimized(EffectWindow* w) @@ -353,9 +353,9 @@ void MagicLampEffect::slotWindowUnminimized(EffectWindow* w) return; if (!mTimeLineWindows.contains(w)) { mTimeLineWindows.insert(w, new QTimeLine(mAnimationDuration, this)); + mTimeLineWindows[w]->setCurrentTime(mAnimationDuration); mTimeLineWindows[w]->setCurveShape(QTimeLine::LinearCurve); } - mTimeLineWindows[w]->setCurrentTime(mAnimationDuration); } bool MagicLampEffect::isActive() const