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 @@ -114,3 +114,27 @@ } } }); + +// On X11, the fade effect is false triggered when switching between virtual +// desktops. Though if there is an active full screen effect, e.g. the slide +// effect, then it won't be false triggered. +effects['desktopChanged(int,int)'].connect(function () { + if (effects.hasActiveFullScreenEffect) { + return; + } + var windows = effects.stackingOrder; + for (var i = 0; i < windows.length; ++i) { + var window = windows[i]; + if (!window.x11Client) { + continue; + } + if (window.fadeInWindowTypeAnimation) { + cancel(window.fadeInWindowTypeAnimation); + window.fadeInWindowTypeAnimation = undefined; + } + if (window.fadeOutWindowTypeAnimation) { + cancel(window.fadeOutWindowTypeAnimation); + window.fadeOutWindowTypeAnimation = undefined; + } + } +});