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
+
+
+