diff --git a/effects/fade/package/contents/code/main.js b/effects/fade/package/contents/code/main.js --- a/effects/fade/package/contents/code/main.js +++ b/effects/fade/package/contents/code/main.js @@ -18,73 +18,107 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . *********************************************************************/ + +function isLoginWindow(w) { + return (w.windowClass == "ksplashx ksplashx" + || w.windowClass == "ksplashsimple ksplashsimple" + || w.windowClass == "ksplashqml ksplashqml"); +} + function isFadeWindow(w) { if (w.deleted && effect.isGrabbed(w, Effect.WindowClosedGrabRole)) { return false; } else if (!w.deleted && effect.isGrabbed(w, Effect.WindowAddedGrabRole)) { return false; } - return w.onCurrentDesktop && !isLoginWindow(w) && !w.desktopWindow && !w.utility && !w.minimized; + return (w.onCurrentDesktop + && !isLoginWindow(w) + && !w.desktopWindow + && !w.utility + && !w.minimized); } -function isLoginWindow(w) { - return w.windowClass == "ksplashx ksplashx" || w.windowClass == "ksplashsimple ksplashsimple" || w.windowClass == "ksplashqml ksplashqml"; -} - -var fadeInTime, fadeOutTime, fadeWindows; -function loadConfig() { - fadeInTime = animationTime(effect.readConfig("FadeInTime", 150)); - fadeOutTime = animationTime(effect.readConfig("FadeOutTime", 150)) * 4; - fadeWindows = effect.readConfig("FadeWindows", true); -} -loadConfig(); -effect.configChanged.connect(function() { - loadConfig(); -}); -function fadeInHandler(w) { - if (fadeWindows && isFadeWindow(w)) { - if (w.fadeOutWindowTypeAnimation !== undefined) { - cancel(w.fadeOutWindowTypeAnimation); - w.fadeOutWindowTypeAnimation = undefined; +var fadeEffect = { + duration: { + fadeIn: animationTime(150), + fadeOut: animationTime(150) * 4 + }, + loadConfig: function () { + 'use strict'; + fadeEffect.duration.fadeIn = + animationTime(effect.readConfig('FadeInDuration', 150)); + fadeEffect.duration.fadeOut = + animationTime(effect.readConfig('FadeOutDuration', 150)) * 4; + }, + fadeIn: function (window) { + 'use strict'; + if (! isFadeWindow(window)) { + return; } - w.fadeInWindowTypeAnimation = effect.animate(w, Effect.Opacity, fadeInTime, 1.0, 0.0); - } -} -function fadeOutHandler(w) { - if (fadeWindows && isFadeWindow(w)) { - if (w.fadeOutWindowTypeAnimation !== undefined) { - // don't animate again as it was already animated through window hidden + fadeEffect.cancelFadeOut(window); + window.fadeInWindowTypeAnimation = animate({ + window: window, + duration: fadeEffect.duration.fadeIn, + curve: QEasingCurve.InQuart, + animations: [{ + type: Effect.Opacity, + to: 1.0, + from: 0.0 + }] + }); + }, + cancelFadeIn: function (window) { + 'use strict'; + if (window.fadeInWindowTypeAnimation !== undefined) { + cancel(window.fadeInWindowTypeAnimation); + window.fadeInWindowTypeAnimation = undefined; + } + }, + fadeOut: function (window) { + 'use strict'; + if (! isFadeWindow(window)) { return; } - w.fadeOutWindowTypeAnimation = animate({ - window: w, - duration: fadeOutTime, + fadeEffect.cancelFadeIn(window); + window.fadeOutWindowTypeAnimation = animate({ + window: window, + duration: fadeEffect.duration.fadeOut, + curve: QEasingCurve.OutQuart, animations: [{ type: Effect.Opacity, - curve: QEasingCurve.OutQuart, - to: 0.0 + to: 0.0, + from: 1.0 }] }); - } -} -effects.windowAdded.connect(fadeInHandler); -effects.windowShown.connect(fadeInHandler); -effects.windowClosed.connect(fadeOutHandler); -effects.windowHidden.connect(fadeOutHandler); -effects.windowDataChanged.connect(function (window, role) { - if (role == Effect.WindowAddedGrabRole) { - if (effect.isGrabbed(window, Effect.WindowAddedGrabRole)) { - if (window.fadeInWindowTypeAnimation !== undefined) { - cancel(window.fadeInWindowTypeAnimation); - window.fadeInWindowTypeAnimation = undefined; - } + }, + cancelFadeOut: function (window) { + 'use strict'; + if (window.fadeOutWindowTypeAnimation !== undefined) { + cancel(window.fadeOutWindowTypeAnimation); + window.fadeOutWindowTypeAnimation = undefined; } - } else if (role == Effect.WindowClosedGrabRole) { - if (effect.isGrabbed(window, Effect.WindowClosedGrabRole)) { - if (window.fadeOutWindowTypeAnimation !== undefined) { - cancel(window.fadeOutWindowTypeAnimation); - window.fadeOutWindowTypeAnimation = undefined; + }, + dataChanged: function (window, role) { + 'use strict'; + if (role == Effect.WindowAddedGrabRole) { + if (effect.isGrabbed(window, Effect.WindowAddedGrabRole)) { + fadeEffect.cancelFadeIn(window); + } + } else if (role == Effect.WindowClosedGrabRole) { + if (effect.isGrabbed(window, Effect.WindowClosedGrabRole)) { + fadeEffect.cancelFadeOut(window); } } + }, + init: function () { + 'use strict'; + effect.configChanged.connect(fadeEffect.loadConfig); + effects.windowAdded.connect(fadeEffect.fadeIn); + effects.windowClosed.connect(fadeEffect.fadeOut); + effects.windowShown.connect(fadeEffect.fadeIn); + effects.windowHidden.connect(fadeEffect.fadeOut); + effects.windowDataChanged.connect(fadeEffect.dataChanged); } -}); +}; + +fadeEffect.init(); diff --git a/effects/fade/package/contents/config/main.xml b/effects/fade/package/contents/config/main.xml --- a/effects/fade/package/contents/config/main.xml +++ b/effects/fade/package/contents/config/main.xml @@ -6,13 +6,10 @@ - - true - - + 150 - + 150