summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/desktop/rule/windowRule/WindowRuleApplicator.hpp11
-rw-r--r--src/desktop/view/Window.cpp19
2 files changed, 11 insertions, 19 deletions
diff --git a/src/desktop/rule/windowRule/WindowRuleApplicator.hpp b/src/desktop/rule/windowRule/WindowRuleApplicator.hpp
index ba80e17b..272cefe5 100644
--- a/src/desktop/rule/windowRule/WindowRuleApplicator.hpp
+++ b/src/desktop/rule/windowRule/WindowRuleApplicator.hpp
@@ -41,12 +41,11 @@ namespace Desktop::Rule {
std::string monitor, workspace, group;
std::optional<bool> floating;
-
- bool fullscreen = false;
- bool maximize = false;
- bool pseudo = false;
- bool pin = false;
- bool noInitialFocus = false;
+ std::optional<bool> fullscreen;
+ std::optional<bool> maximize;
+ std::optional<bool> pseudo;
+ std::optional<bool> pin;
+ std::optional<bool> noInitialFocus;
std::optional<int> fullscreenStateClient;
std::optional<int> fullscreenStateInternal;
diff --git a/src/desktop/view/Window.cpp b/src/desktop/view/Window.cpp
index 2fc15566..0eadc326 100644
--- a/src/desktop/view/Window.cpp
+++ b/src/desktop/view/Window.cpp
@@ -2047,14 +2047,10 @@ void CWindow::mapWindow() {
requestedFSMonitor = MONITOR_INVALID;
}
- if (m_ruleApplicator->static_.floating.has_value())
- m_isFloating = m_ruleApplicator->static_.floating.value();
-
- if (m_ruleApplicator->static_.pseudo)
- m_isPseudotiled = true;
-
- if (m_ruleApplicator->static_.noInitialFocus)
- m_noInitialFocus = true;
+ m_isFloating = m_ruleApplicator->static_.floating.value_or(m_isFloating);
+ m_isPseudotiled = m_ruleApplicator->static_.pseudo.value_or(m_isPseudotiled);
+ m_noInitialFocus = m_ruleApplicator->static_.noInitialFocus.value_or(m_noInitialFocus);
+ m_pinned = m_ruleApplicator->static_.pin.value_or(m_pinned);
if (m_ruleApplicator->static_.fullscreenStateClient || m_ruleApplicator->static_.fullscreenStateInternal) {
requestedFSState = Desktop::View::SFullscreenState{
@@ -2080,13 +2076,10 @@ void CWindow::mapWindow() {
}
}
- if (m_ruleApplicator->static_.pin)
- m_pinned = true;
-
- if (m_ruleApplicator->static_.fullscreen)
+ if (m_ruleApplicator->static_.fullscreen.value_or(false))
requestedInternalFSMode = FSMODE_FULLSCREEN;
- if (m_ruleApplicator->static_.maximize)
+ if (m_ruleApplicator->static_.maximize.value_or(false))
requestedInternalFSMode = FSMODE_MAXIMIZED;
if (!m_ruleApplicator->static_.group.empty()) {