diff --git a/effects/backgroundcontrast/contrast.cpp b/effects/backgroundcontrast/contrast.cpp index a56b5f759c..3ef1cf1e0d 100644 --- a/effects/backgroundcontrast/contrast.cpp +++ b/effects/backgroundcontrast/contrast.cpp @@ -67,8 +67,9 @@ ContrastEffect::ContrastEffect() ); // Fetch the contrast regions for all windows - foreach (EffectWindow *window, effects->stackingOrder()) + for (EffectWindow *window: effects->stackingOrder()) { updateContrastRegion(window); + } } ContrastEffect::~ContrastEffect() @@ -78,7 +79,14 @@ ContrastEffect::~ContrastEffect() void ContrastEffect::slotScreenGeometryChanged() { - effects->reloadEffect(this); + effects->makeOpenGLContextCurrent(); + if (!supported()) { + effects->reloadEffect(this); + return; + } + for (EffectWindow *window: effects->stackingOrder()) { + updateContrastRegion(window); + } } void ContrastEffect::reconfigure(ReconfigureFlags flags)