[effects/invert] Don't block blur and background contrast effect
Summary: Background behind some windows is not blurred because the invert effect sets PAINT_WINDOW_TRANSFORMED. This essentially "turns off" the blur and the background contrast effect unless we set the force roles. Because the invert effect is a "post-processing"(not really) effect we don't have to set that flag. BUG: 279076 BUG: 359583 FIXED-IN: 5.14.3 Test Plan: {F6341916} Reviewers: #kwin, davidedmundson Reviewed By: #kwin, davidedmundson Subscribers: kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D16358
This commit is contained in:
parent
69af30f3fb
commit
9fae2f4905
2 changed files with 7 additions and 15 deletions
|
@ -82,19 +82,6 @@ bool InvertEffect::loadData()
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void InvertEffect::prePaintScreen(ScreenPrePaintData &data, int time)
|
|
||||||
{
|
|
||||||
effects->prePaintScreen(data, time);
|
|
||||||
}
|
|
||||||
|
|
||||||
void InvertEffect::prePaintWindow(EffectWindow *w, WindowPrePaintData &data, int time)
|
|
||||||
{
|
|
||||||
if (m_valid && (m_allWindows != m_windows.contains(w))) {
|
|
||||||
data.mask |= PAINT_WINDOW_TRANSFORMED;
|
|
||||||
}
|
|
||||||
effects->prePaintWindow(w, data, time);
|
|
||||||
}
|
|
||||||
|
|
||||||
void InvertEffect::drawWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data)
|
void InvertEffect::drawWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data)
|
||||||
{
|
{
|
||||||
// Load if we haven't already
|
// Load if we haven't already
|
||||||
|
|
|
@ -41,12 +41,12 @@ public:
|
||||||
~InvertEffect();
|
~InvertEffect();
|
||||||
|
|
||||||
virtual void drawWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data);
|
virtual void drawWindow(EffectWindow* w, int mask, QRegion region, WindowPaintData& data);
|
||||||
virtual void prePaintScreen(ScreenPrePaintData &data, int time);
|
|
||||||
virtual void prePaintWindow(EffectWindow *w, WindowPrePaintData &data, int time);
|
|
||||||
virtual void paintEffectFrame(KWin::EffectFrame* frame, QRegion region, double opacity, double frameOpacity);
|
virtual void paintEffectFrame(KWin::EffectFrame* frame, QRegion region, double opacity, double frameOpacity);
|
||||||
virtual bool isActive() const;
|
virtual bool isActive() const;
|
||||||
virtual bool provides(Feature);
|
virtual bool provides(Feature);
|
||||||
|
|
||||||
|
int requestedEffectChainPosition() const override;
|
||||||
|
|
||||||
static bool supported();
|
static bool supported();
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
|
@ -65,6 +65,11 @@ private:
|
||||||
QList<EffectWindow*> m_windows;
|
QList<EffectWindow*> m_windows;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
inline int InvertEffect::requestedEffectChainPosition() const
|
||||||
|
{
|
||||||
|
return 99;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue