From 07cc4b00721fccc01d5e6e2a2499ec040e70aac6 Mon Sep 17 00:00:00 2001 From: Vlad Zagorodniy Date: Wed, 10 Oct 2018 16:03:26 +0300 Subject: [PATCH] [effects/fadedesktop] Don't animate windows moved between virtual desktops Summary: If a window was moved to another virtual desktop, then it would be faded in. The desired behavior is to not animate it at all. Test Plan: Moved a Konsole window between virtual desktops, it stayed opaque. Reviewers: #kwin, davidedmundson Reviewed By: #kwin, davidedmundson Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D16102 --- effects/fadedesktop/package/contents/code/main.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/effects/fadedesktop/package/contents/code/main.js b/effects/fadedesktop/package/contents/code/main.js index 064989dea8..f31dd813b0 100644 --- a/effects/fadedesktop/package/contents/code/main.js +++ b/effects/fadedesktop/package/contents/code/main.js @@ -26,13 +26,20 @@ loadConfig(); effect.configChanged.connect(function() { loadConfig(); }); -effects['desktopChanged(int,int)'].connect(function(oldDesktop, newDesktop) { +effects['desktopChanged(int,int,KWin::EffectWindow*)'].connect(function(oldDesktop, newDesktop, movingWindow) { if (effects.hasActiveFullScreenEffect && !effect.isActiveFullScreenEffect) { return; } var stackingOrder = effects.stackingOrder; for (var i = 0; i < stackingOrder.length; i++) { var w = stackingOrder[i]; + + // Don't animate windows that have been moved to the current + // desktop, i.e. newDesktop. + if (w == movingWindow) { + continue; + } + if (w.desktop != oldDesktop && w.desktop != newDesktop) { continue; }