diff --git a/effects/effect_builtins.cpp b/effects/effect_builtins.cpp --- a/effects/effect_builtins.cpp +++ b/effects/effect_builtins.cpp @@ -378,7 +378,7 @@ false, #ifdef EFFECT_BUILTINS &createHelper, - nullptr, + &MinimizeAnimationEffect::supported, nullptr #endif EFFECT_FALLBACK @@ -528,7 +528,7 @@ false, #ifdef EFFECT_BUILTINS &createHelper, - nullptr, + &SlideEffect::supported, nullptr #endif EFFECT_FALLBACK @@ -558,7 +558,7 @@ false, #ifdef EFFECT_BUILTINS &createHelper, - nullptr, + &SlidingPopupsEffect::supported, nullptr #endif EFFECT_FALLBACK diff --git a/effects/minimizeanimation/minimizeanimation.h b/effects/minimizeanimation/minimizeanimation.h --- a/effects/minimizeanimation/minimizeanimation.h +++ b/effects/minimizeanimation/minimizeanimation.h @@ -49,6 +49,8 @@ return 50; } + static bool supported(); + public Q_SLOTS: void slotWindowDeleted(KWin::EffectWindow *w); void slotWindowMinimized(KWin::EffectWindow *w); diff --git a/effects/minimizeanimation/minimizeanimation.cpp b/effects/minimizeanimation/minimizeanimation.cpp --- a/effects/minimizeanimation/minimizeanimation.cpp +++ b/effects/minimizeanimation/minimizeanimation.cpp @@ -33,6 +33,10 @@ connect(effects, SIGNAL(windowUnminimized(KWin::EffectWindow*)), this, SLOT(slotWindowUnminimized(KWin::EffectWindow*))); } +bool MinimizeAnimationEffect::supported() +{ + return effects->animationsSupported(); +} void MinimizeAnimationEffect::prePaintScreen(ScreenPrePaintData& data, int time) { diff --git a/effects/slide/slide.h b/effects/slide/slide.h --- a/effects/slide/slide.h +++ b/effects/slide/slide.h @@ -47,6 +47,8 @@ return 50; } + static bool supported(); + private Q_SLOTS: void slotDesktopChanged(int old, int current); diff --git a/effects/slide/slide.cpp b/effects/slide/slide.cpp --- a/effects/slide/slide.cpp +++ b/effects/slide/slide.cpp @@ -38,6 +38,11 @@ reconfigure(ReconfigureAll); } +bool SlideEffect::supported() +{ + return effects->animationsSupported(); +} + void SlideEffect::reconfigure(ReconfigureFlags) { mTimeLine.setDuration(animationTime(250)); diff --git a/effects/slidingpopups/slidingpopups.h b/effects/slidingpopups/slidingpopups.h --- a/effects/slidingpopups/slidingpopups.h +++ b/effects/slidingpopups/slidingpopups.h @@ -48,6 +48,9 @@ int requestedEffectChainPosition() const override { return 40; } + + static bool supported(); + // TODO react also on virtual desktop changes // for properties diff --git a/effects/slidingpopups/slidingpopups.cpp b/effects/slidingpopups/slidingpopups.cpp --- a/effects/slidingpopups/slidingpopups.cpp +++ b/effects/slidingpopups/slidingpopups.cpp @@ -61,6 +61,11 @@ { } +bool SlidingPopupsEffect::supported() +{ + return effects->animationsSupported(); +} + void SlidingPopupsEffect::reconfigure(ReconfigureFlags flags) { Q_UNUSED(flags)