mirror of
https://github.com/hyprwm/Hyprland
synced 2026-01-06 16:30:20 +01:00
desktop/rules: tag static rule being ignored (#12514)
* chore: apply exec rules after removal and use CWindowRule * refactor: unregister exec rules after applying them Remove the unused toRemove vector and defer unregistering exec rules until after applyStaticRule/applyDynamicRule so exec rules are applied before being removed from the rule engine.
This commit is contained in:
parent
bb963fb002
commit
f82a8630d7
1 changed files with 14 additions and 10 deletions
|
|
@ -545,8 +545,8 @@ void CWindowRuleApplicator::readStaticRules() {
|
|||
|
||||
static_ = {};
|
||||
|
||||
std::vector<SP<IRule>> toRemove;
|
||||
bool tagsWereChanged = false;
|
||||
std::vector<SP<CWindowRule>> execRules;
|
||||
bool tagsWereChanged = false;
|
||||
|
||||
for (const auto& r : ruleEngine()->rules()) {
|
||||
if (r->type() != RULE_TYPE_WINDOW)
|
||||
|
|
@ -557,16 +557,14 @@ void CWindowRuleApplicator::readStaticRules() {
|
|||
if (!wr->matches(m_window.lock(), true))
|
||||
continue;
|
||||
|
||||
if (wr->isExecRule()) {
|
||||
execRules.emplace_back(wr);
|
||||
continue;
|
||||
}
|
||||
|
||||
applyStaticRule(wr);
|
||||
const auto RES = applyDynamicRule(wr); // also apply dynamic, because we won't recheck it before layout gets data
|
||||
const auto RES = applyDynamicRule(wr);
|
||||
tagsWereChanged = tagsWereChanged || RES.tagsChanged;
|
||||
|
||||
if (wr->isExecRule())
|
||||
toRemove.emplace_back(wr);
|
||||
}
|
||||
|
||||
for (const auto& wr : toRemove) {
|
||||
ruleEngine()->unregisterRule(wr);
|
||||
}
|
||||
|
||||
// recheck some props people might wanna use for static rules.
|
||||
|
|
@ -592,6 +590,12 @@ void CWindowRuleApplicator::readStaticRules() {
|
|||
applyStaticRule(wr);
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto& wr : execRules) {
|
||||
applyStaticRule(wr);
|
||||
applyDynamicRule(wr);
|
||||
ruleEngine()->unregisterRule(wr);
|
||||
}
|
||||
}
|
||||
|
||||
void CWindowRuleApplicator::propertiesChanged(std::underlying_type_t<eRuleProperty> props) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue