diff options
| author | Lichie <90825386+lichie567@users.noreply.github.com> | 2025-12-17 10:23:12 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-17 18:23:12 +0000 |
| commit | 18901b8e593ebd05a7134dcdb8a7774206cf5646 (patch) | |
| tree | 5843db9409f2b9b544cfc39efb084be0b105305c /src | |
| parent | 709855842068315bb2109d8f422a70c2b5ed1931 (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.cpp | 2 | ||||
| -rw-r--r-- | src/desktop/rule/windowRule/WindowRuleApplicator.hpp | 2 | ||||
| -rw-r--r-- | src/desktop/view/Window.cpp | 2 |
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; } |
