[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:
parent
9644f29b8b
commit
4156a0af4d
2 changed files with 13 additions and 0 deletions
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue