diff --git a/effects/fadedesktop/package/contents/code/main.js b/effects/fadedesktop/package/contents/code/main.js --- a/effects/fadedesktop/package/contents/code/main.js +++ b/effects/fadedesktop/package/contents/code/main.js @@ -40,16 +40,23 @@ continue; } - if (w.desktop != oldDesktop && w.desktop != newDesktop) { + // If the window is not on the old and the new desktop or it's + // on both of them, then don't animate it. + var onOldDesktop = w.isOnDesktop(oldDesktop); + var onNewDesktop = w.isOnDesktop(newDesktop); + if (onOldDesktop == onNewDesktop) { continue; } + if (w.minimized) { continue; } + if (!w.isOnActivity(effects.currentActivity)){ continue; } - if (w.desktop == oldDesktop) { + + if (onOldDesktop) { animate({ window: w, duration: duration, diff --git a/libkwineffects/kwineffects.h b/libkwineffects/kwineffects.h --- a/libkwineffects/kwineffects.h +++ b/libkwineffects/kwineffects.h @@ -2044,7 +2044,7 @@ bool isOnAllActivities() const; QStringList activities() const; - bool isOnDesktop(int d) const; + Q_SCRIPTABLE bool isOnDesktop(int d) const; bool isOnCurrentDesktop() const; bool isOnAllDesktops() const; int desktop() const; // prefer isOnXXX()