diff --git a/effects/diminactive/diminactive.h b/effects/diminactive/diminactive.h --- a/effects/diminactive/diminactive.h +++ b/effects/diminactive/diminactive.h @@ -37,6 +37,7 @@ Q_PROPERTY(bool dimDesktop READ dimDesktop) Q_PROPERTY(bool dimKeepAbove READ dimKeepAbove) Q_PROPERTY(bool dimByGroup READ dimByGroup) + Q_PROPERTY(bool dimFullScreen READ dimFullScreen) public: DimInactiveEffect(); @@ -56,6 +57,7 @@ bool dimDesktop() const; bool dimKeepAbove() const; bool dimByGroup() const; + bool dimFullScreen() const; private Q_SLOTS: void windowActivated(EffectWindow *w); @@ -78,6 +80,7 @@ bool m_dimDesktop; bool m_dimKeepAbove; bool m_dimByGroup; + bool m_dimFullScreen; EffectWindow *m_activeWindow; const EffectWindowGroup *m_activeWindowGroup; @@ -125,6 +128,11 @@ return m_dimByGroup; } +inline bool DimInactiveEffect::dimFullScreen() const +{ + return m_dimFullScreen; +} + } // namespace KWin #endif diff --git a/effects/diminactive/diminactive.cpp b/effects/diminactive/diminactive.cpp --- a/effects/diminactive/diminactive.cpp +++ b/effects/diminactive/diminactive.cpp @@ -75,6 +75,7 @@ m_dimDesktop = DimInactiveConfig::dimDesktop(); m_dimKeepAbove = DimInactiveConfig::dimKeepAbove(); m_dimByGroup = DimInactiveConfig::dimByGroup(); + m_dimFullScreen = DimInactiveConfig::dimFullScreen(); // Need to reset m_activeWindow becase canDimWindow returns false // if m_activeWindow is equal to effects->activeWindow(). @@ -197,6 +198,10 @@ return false; } + if (w->isFullScreen() && !m_dimFullScreen) { + return false; + } + if (!w->isManaged()) { return false; } diff --git a/effects/diminactive/diminactive.kcfg b/effects/diminactive/diminactive.kcfg --- a/effects/diminactive/diminactive.kcfg +++ b/effects/diminactive/diminactive.kcfg @@ -20,5 +20,8 @@ true + + true + diff --git a/effects/diminactive/diminactive_config.ui b/effects/diminactive/diminactive_config.ui --- a/effects/diminactive/diminactive_config.ui +++ b/effects/diminactive/diminactive_config.ui @@ -69,6 +69,13 @@ + + + + Fullscreen windows + + +