[effects/slideback] Enable blur behind windows

Summary: Use the blur effect even while the window is sliding back.

Test Plan: {F5828577}

Reviewers: #kwin, #vdg, graesslin, ngraham

Reviewed By: #kwin, #vdg, graesslin, ngraham

Subscribers: ngraham, graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12625
This commit is contained in:
Alex Nemeth 2018-05-01 23:06:47 +02:00
parent 9644f29b8b
commit 4156a0af4d
2 changed files with 13 additions and 0 deletions

View file

@ -149,6 +149,12 @@ void SlideBackEffect::prePaintScreen(ScreenPrePaintData &data, int time)
motionManager.calculate(time);
data.mask |= Effect::PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS;
}
for (auto const &w : effects->stackingOrder()) {
m_windowForceBlurRoleState[w] = w->data(WindowForceBlurRole).toBool();
w->setData(WindowForceBlurRole, QVariant(true));
}
effects->prePaintScreen(data, time);
}
@ -157,6 +163,11 @@ void SlideBackEffect::postPaintScreen()
if (motionManager.areWindowsMoving()) {
effects->addRepaintFull();
}
for (auto &w : effects->stackingOrder()) {
w->setData(WindowForceBlurRole, m_windowForceBlurRoleState.value(w, false));
}
effects->postPaintScreen();
}

View file

@ -66,6 +66,8 @@ private:
int m_tabboxActive;
QList <QRegion> clippedRegions;
QMap <EffectWindow*, bool> m_windowForceBlurRoleState;
QRect getSlideDestination(const QRect &windowUnderGeometry, const QRect &windowOverGeometry);
bool isWindowUsable(EffectWindow *w);
bool intersects(EffectWindow *windowUnder, const QRect &windowOverGeometry);