diff --git a/effects/desktopgrid/desktopgrid.h b/effects/desktopgrid/desktopgrid.h --- a/effects/desktopgrid/desktopgrid.h +++ b/effects/desktopgrid/desktopgrid.h @@ -175,6 +175,9 @@ // Shortcut - needed to toggle the effect QList shortcut; + // State of WindowForceBlurRole before this effect + QMap m_windowForceBlurRoleState; + PresentWindowsEffectProxy* m_proxy; QList m_managers; bool m_usePresentWindows; diff --git a/effects/desktopgrid/desktopgrid.cpp b/effects/desktopgrid/desktopgrid.cpp --- a/effects/desktopgrid/desktopgrid.cpp +++ b/effects/desktopgrid/desktopgrid.cpp @@ -162,6 +162,12 @@ if (!activated && timeline.currentValue() == 0 && !(isUsingPresentWindows() && isMotionManagerMovingWindows())) finish(); } + + for (auto const &w : effects->stackingOrder()) { + m_windowForceBlurRoleState[w] = w->data(WindowForceBlurRole).toBool(); + w->setData(WindowForceBlurRole, QVariant(true)); + } + effects->prePaintScreen(data, time); } @@ -249,6 +255,11 @@ } } } + + for (auto &w : effects->stackingOrder()) { + w->setData(WindowForceBlurRole, m_windowForceBlurRoleState.value(w, false)); + } + effects->postPaintScreen(); }