clear m_activeEffects when effects change

If a screen with different refreshrate is attached, kwin currently resets
the compositor, altering the effect list.
If at the same time quads are rebuilt, the iteration operates on a pot.
invalid list of dangeling active effects.

Many thanks to Toralf Förster for his testing efforts.

BUG: 308201
FIXED-IN: 4.10.3
REVIEW: 110294
CC: release-team@kde.org
This commit is contained in:
Thomas Lübking 2013-05-03 23:12:53 +02:00
parent 782fbd0de6
commit 130deb2a66

View file

@ -1402,6 +1402,7 @@ void EffectsHandlerImpl::reloadEffect(Effect *effect)
void EffectsHandlerImpl::effectsChanged() void EffectsHandlerImpl::effectsChanged()
{ {
loaded_effects.clear(); loaded_effects.clear();
m_activeEffects.clear(); // it's possible to have a reconfigure and a quad rebuild between two paint cycles - bug #308201
// kDebug(1212) << "Recreating effects' list:"; // kDebug(1212) << "Recreating effects' list:";
foreach (const EffectPair & effect, effect_order) { foreach (const EffectPair & effect, effect_order) {
// kDebug(1212) << effect.first; // kDebug(1212) << effect.first;