summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLichie <90825386+lichie567@users.noreply.github.com>2025-12-17 10:23:12 -0800
committerGitHub <noreply@github.com>2025-12-17 18:23:12 +0000
commit18901b8e593ebd05a7134dcdb8a7774206cf5646 (patch)
tree5843db9409f2b9b544cfc39efb084be0b105305c /src
parent709855842068315bb2109d8f422a70c2b5ed1931 (diff)
desktop/windowRule: force center and move rules to override each other (#12618)
Diffstat (limited to 'src')
-rw-r--r--src/desktop/rule/windowRule/WindowRuleApplicator.cpp2
-rw-r--r--src/desktop/rule/windowRule/WindowRuleApplicator.hpp2
-rw-r--r--src/desktop/view/Window.cpp2
3 files changed, 4 insertions, 2 deletions
diff --git a/src/desktop/rule/windowRule/WindowRuleApplicator.cpp b/src/desktop/rule/windowRule/WindowRuleApplicator.cpp
index 76109a42..6b2d1b94 100644
--- a/src/desktop/rule/windowRule/WindowRuleApplicator.cpp
+++ b/src/desktop/rule/windowRule/WindowRuleApplicator.cpp
@@ -481,6 +481,7 @@ CWindowRuleApplicator::SRuleResult CWindowRuleApplicator::applyStaticRule(const
break;
}
case WINDOW_RULE_EFFECT_MOVE: {
+ static_.center = std::nullopt;
static_.position = effect;
break;
}
@@ -489,6 +490,7 @@ CWindowRuleApplicator::SRuleResult CWindowRuleApplicator::applyStaticRule(const
break;
}
case WINDOW_RULE_EFFECT_CENTER: {
+ static_.position.clear();
static_.center = truthy(effect);
break;
}
diff --git a/src/desktop/rule/windowRule/WindowRuleApplicator.hpp b/src/desktop/rule/windowRule/WindowRuleApplicator.hpp
index 272cefe5..121de727 100644
--- a/src/desktop/rule/windowRule/WindowRuleApplicator.hpp
+++ b/src/desktop/rule/windowRule/WindowRuleApplicator.hpp
@@ -46,10 +46,10 @@ namespace Desktop::Rule {
std::optional<bool> pseudo;
std::optional<bool> pin;
std::optional<bool> noInitialFocus;
+ std::optional<bool> center;
std::optional<int> fullscreenStateClient;
std::optional<int> fullscreenStateInternal;
- std::optional<int> center;
std::optional<int> content;
std::optional<int> noCloseFor;
diff --git a/src/desktop/view/Window.cpp b/src/desktop/view/Window.cpp
index 0eadc326..bf853557 100644
--- a/src/desktop/view/Window.cpp
+++ b/src/desktop/view/Window.cpp
@@ -2248,7 +2248,7 @@ void CWindow::mapWindow() {
}
}
- if (m_ruleApplicator->static_.center) {
+ if (m_ruleApplicator->static_.center.value_or(false)) {
const auto WORKAREA = PMONITOR->logicalBoxMinusReserved();
*m_realPosition = WORKAREA.middle() - m_realSize->goal() / 2.f;
}