diff --git a/effects/fallapart/fallapart.cpp b/effects/fallapart/fallapart.cpp --- a/effects/fallapart/fallapart.cpp +++ b/effects/fallapart/fallapart.cpp @@ -57,7 +57,7 @@ void FallApartEffect::prePaintWindow(EffectWindow* w, WindowPrePaintData& data, int time) { if (windows.contains(w) && isRealWindow(w)) { - if (windows[ w ] < 1) { + if (windows[ w ] < 1 && !effects->activeFullScreenEffect()) { windows[ w ] += time / animationTime(1000.); data.setTransformed(); w->enablePainting(EffectWindow::PAINT_DISABLED_BY_DELETE); diff --git a/effects/magiclamp/magiclamp.h b/effects/magiclamp/magiclamp.h --- a/effects/magiclamp/magiclamp.h +++ b/effects/magiclamp/magiclamp.h @@ -51,6 +51,7 @@ void slotWindowDeleted(KWin::EffectWindow *w); void slotWindowMinimized(KWin::EffectWindow *w); void slotWindowUnminimized(KWin::EffectWindow *w); + void slotActiveFullScreenEffectChanged(); private: std::chrono::milliseconds m_duration; diff --git a/effects/magiclamp/magiclamp.cpp b/effects/magiclamp/magiclamp.cpp --- a/effects/magiclamp/magiclamp.cpp +++ b/effects/magiclamp/magiclamp.cpp @@ -34,6 +34,7 @@ connect(effects, &EffectsHandler::windowDeleted, this, &MagicLampEffect::slotWindowDeleted); connect(effects, &EffectsHandler::windowMinimized, this, &MagicLampEffect::slotWindowMinimized); connect(effects, &EffectsHandler::windowUnminimized, this, &MagicLampEffect::slotWindowUnminimized); + connect(effects, &EffectsHandler::activeFullScreenEffectChanged, this, &MagicLampEffect::slotActiveFullScreenEffectChanged); } bool MagicLampEffect::supported() @@ -366,6 +367,11 @@ effects->addRepaintFull(); } +void MagicLampEffect::slotActiveFullScreenEffectChanged() +{ + m_animations.clear(); +} + bool MagicLampEffect::isActive() const { return !m_animations.isEmpty();