[effects] Clean up effect_order in unloadAllEffects
Summary:
EffectsHandlerImpl::unloadAllEffects can be very useful when writing
tests, e.g.:
auto effectsImpl = qobect_cast<EffectsHandlerImpl *>(effects); QVERIFY(effectsImpl); effectsImpl->unloadAllEffects(); QVERIFY(effectsImpl->loadEffect(QStringLiteral("kwin5_effect_foobar")));
but because unloadAllEffects doesn't clean up effect_order, the old
effects can be re-added back into loaded_effects when a new effect is
loaded. Such behavior can result in a segfault.
Test Plan: Existing tests pass.
Reviewers: KWin, graesslin
Reviewed By: KWin, graesslin
Subscribers: kwin
Tags: KWin
Differential Revision: https://phabricator.kde.org/D17283