diff --git a/src/effects/fade/package/contents/code/main.js b/src/effects/fade/package/contents/code/main.js index 0a63ed6c6c..ce0d7a67bc 100644 --- a/src/effects/fade/package/contents/code/main.js +++ b/src/effects/fade/package/contents/code/main.js @@ -82,7 +82,7 @@ class FadeEffect { if (effects.hasActiveFullScreenEffect) { return; } - if (!this.fadeWindows || !FadeEffect.isFadeWindow(window)) { + if (!this.fadeWindows || window.skipsCloseAnimation || !FadeEffect.isFadeWindow(window)) { return; } window.fadeOutAnimation = animate({ diff --git a/src/effects/fadingpopups/package/contents/code/main.js b/src/effects/fadingpopups/package/contents/code/main.js index c5934c010e..c593c5c635 100644 --- a/src/effects/fadingpopups/package/contents/code/main.js +++ b/src/effects/fadingpopups/package/contents/code/main.js @@ -99,7 +99,7 @@ var fadingPopupsEffect = { if (!isPopupWindow(window)) { return; } - if (!window.visible) { + if (!window.visible || window.skipsCloseAnimation) { return; } if (!effect.grab(window, Effect.WindowClosedGrabRole)) { diff --git a/src/effects/glide/glide.cpp b/src/effects/glide/glide.cpp index 5491c2591f..8a67f60900 100644 --- a/src/effects/glide/glide.cpp +++ b/src/effects/glide/glide.cpp @@ -237,7 +237,7 @@ void GlideEffect::windowClosed(EffectWindow *w) return; } - if (!w->isVisible()) { + if (!w->isVisible() || w->skipsCloseAnimation()) { return; } diff --git a/src/effects/scale/package/contents/code/main.js b/src/effects/scale/package/contents/code/main.js index 293fc200ba..0cb9487235 100644 --- a/src/effects/scale/package/contents/code/main.js +++ b/src/effects/scale/package/contents/code/main.js @@ -126,7 +126,7 @@ class ScaleEffect { if (!ScaleEffect.isScaleWindow(window)) { return; } - if (!window.visible) { + if (!window.visible || window.skipsCloseAnimation) { return; } if (!effect.grab(window, Effect.WindowClosedGrabRole)) { diff --git a/src/effects/sheet/sheet.cpp b/src/effects/sheet/sheet.cpp index e926ca3fac..3a0b14e9b6 100644 --- a/src/effects/sheet/sheet.cpp +++ b/src/effects/sheet/sheet.cpp @@ -182,7 +182,7 @@ void SheetEffect::slotWindowClosed(EffectWindow *w) return; } - if (!isSheetWindow(w)) { + if (!isSheetWindow(w) || w->skipsCloseAnimation()) { return; } diff --git a/src/scene.cpp b/src/scene.cpp index b49430d77e..67a441ea46 100644 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -511,10 +511,6 @@ void Scene::paintWindow(Window* w, int mask, const QRegion &_region) const QRegion region = _region & QRect({0, 0}, screens()->size()); if (region.isEmpty()) // completely clipped return; - if (w->window()->isDeleted() && w->window()->skipsCloseAnimation()) { - // should not get painted - return; - } WindowPaintData data(w->window()->effectWindow(), screenProjectionMatrix()); effects->paintWindow(effectWindow(w), mask, region, data);