diff --git a/effects/presentwindows/presentwindows.h b/effects/presentwindows/presentwindows.h --- a/effects/presentwindows/presentwindows.h +++ b/effects/presentwindows/presentwindows.h @@ -309,6 +309,9 @@ // Grid layout info QList m_gridSizes; + // State of WindowForceBlurRole before this effect + QMap m_windowForceBlurRoleState; + // Filter box EffectFrame* m_filterFrame; QString m_windowFilter; diff --git a/effects/presentwindows/presentwindows.cpp b/effects/presentwindows/presentwindows.cpp --- a/effects/presentwindows/presentwindows.cpp +++ b/effects/presentwindows/presentwindows.cpp @@ -244,10 +244,8 @@ m_windowData.clear(); foreach (EffectWindow * w, effects->stackingOrder()) { - if (w->isDock()) { - w->setData(WindowForceBlurRole, QVariant(false)); - w->setData(WindowForceBackgroundContrastRole, QVariant(false)); - } + w->setData(WindowForceBlurRole, QVariant(m_windowForceBlurRoleState.value(w, false))); + w->setData(WindowForceBackgroundContrastRole, QVariant(false)); } effects->setActiveFullScreenEffect(NULL); effects->addRepaintFull(); @@ -1586,10 +1584,9 @@ setHighlightedWindow(effects->activeWindow()); foreach (EffectWindow * w, effects->stackingOrder()) { - if (w->isDock()) { - w->setData(WindowForceBlurRole, QVariant(true)); - w->setData(WindowForceBackgroundContrastRole, QVariant(true)); - } + m_windowForceBlurRoleState[w] = w->data(WindowForceBlurRole).toBool(); + w->setData(WindowForceBlurRole, QVariant(true)); + w->setData(WindowForceBackgroundContrastRole, QVariant(true)); } } else { m_needInitialSelection = false;