[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
This commit is contained in:
Vlad Zagorodniy 2018-10-10 16:03:26 +03:00
parent cc280a4dd7
commit 07cc4b0072

View file

@ -26,13 +26,20 @@ loadConfig();
effect.configChanged.connect(function() { effect.configChanged.connect(function() {
loadConfig(); 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) { if (effects.hasActiveFullScreenEffect && !effect.isActiveFullScreenEffect) {
return; return;
} }
var stackingOrder = effects.stackingOrder; var stackingOrder = effects.stackingOrder;
for (var i = 0; i < stackingOrder.length; i++) { for (var i = 0; i < stackingOrder.length; i++) {
var w = stackingOrder[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) { if (w.desktop != oldDesktop && w.desktop != newDesktop) {
continue; continue;
} }